Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] MACRO & VARIABILI Pubbliche e Private

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] MACRO & VARIABILI Pubbliche e Private

Postdi mpsinf » 06/12/12 19:37

Ciao a tutti, nell'attesa che Antony47 attivi la sezione "COME SI FA ?" vorrei chiarimenti sulle macro e variabili Pubbliche e Private.
Nei miei esperimenti ho potuto constatare che se creo una variabile con "Public Var1 As Integer" questa viene vista da tutte le macro che attivo anche chiamandole in esecuzione da una all'altra con il comando CALL nomemacro.
Una Macro privata (che invece viene creata ed associata nel modulo del foglio stesso) invece non ho ben capito come si fa a richiamare, visto che non ha un nome ossia non è presente nell'elenco delle macro richiamabili e quindi quelle che ho creato fino ad ora sono del tipo "Sub Worksheet_Change(ByVal Target As Range)" ossia si attivano da sole quando viene cambiato un valore in quel determinato foglio, ma bisogna stare attenti perchè all'inizio e alla fine i comandi Application.EnableEvents = False & True, se per caso non vengono eseguiti entrambi, non si attiva più automaticamente la macro privata.
Chiedo lumi sperando di non avere detto castronate, in quanto vorrei attivare il comando "Set IE = CreateObject("InternetExplorer.Application")" prima di lanciare una macro che andrà a rilanciare se stessa con un Ontime in maniera da non dover chiudere ed aprire sessioni di IE continuamente. Attualmente devo lanciare 2 macro la prima contenente solo il Set IE e poi la seconda che si attiva e richiama se stessa.
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Sponsor
 

Re: [Excel] MACRO & VARIABILI Pubbliche e Private

Postdi Anthony47 » 06/12/12 20:37

Ti preannuncio (e lo avevo gia' detto) che un eventuale "Come si fa" non avra' l' obiettivo di sostituire il noto help-on-line dei programmi, ed e' li che trovi chiarimenti sull' area di validita' delle variabili e delle funzioni dichiarate.
In linea di massima una "Private" non ha nessuna visibilita' fuori dal Modulo in cui e' dichiarata; come pure le macro di evento si innescano con l' evento, se gli eventi non sono stati VOLUTAMENTE disabilitati.
Le macro che ti ho suggerito sono dichiaratamente dei prototipi; ti ho gia' suggerito che puoi mantenere diverse sessioni InternetExplorer aperte, senza cioe' chiuderle e senza quindi doverle ricreare. In questo caso dovrai pero' definire "oggetti" chiaramente separati, e ogni automazione lavorera' su quell' oggetto.
Ad esempio puoi dichiarare una IE1, una IE2, una IE3, con cui (dopo la creazione dell' oggetto) avrai aperte 3 sessioni separate di IE che macro diverse potranno interfacciare. Tieni presente che in ogni caso le macro non girano in parallelo, quindi ne avrai una sola attiva; avere sessioni IE gia' aperte consente comunque di guadagnare il tempo necessario alla creazione e alla distruzione degli oggetti, che non e' poco. Ulteriore tempo lo potresti guadagnare passando alla gestione dell' evento DocumentComplete, che ti consentirebbe di terminare una macro mentre il file html viene caricato, avendo cosi' la possibilita' di eseguire altre operazioni, e attivando la parte di gestione dei dati quando "l' evento" si manifesta. Ma questa e' una complicazione non da poco vista anche la scarsa documentazione che comporta dover sperimentare caso per caso.
Un esempio di uso di questo evento lo trovi qui: viewtopic.php?p=546105#p559131 (anche se sono convinto che li' l' utente faceva riferimento al download di un documento che non era il codice html).
Se vuoi usare pezzi di codice sia per aprire un oggetto IE che per usarlo se gia' presente potresti usare una formulazione del tipo
Codice: Seleziona tutto
If IE Is Nothing Then
    Set IE = CreateObject("InternetExplorer.Application")
End If

Mi pare di aver toccato tutti i temi contenuti nel tuo messaggio.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] MACRO & VARIABILI Pubbliche e Private":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti