Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Salvare il valore di una variabile VBA

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] Salvare il valore di una variabile VBA

Postdi Dylan666 » 15/11/22 18:57

Ho creato una UserForm con una TextBox in una Macro di Excel per la richiesta della password di un utente.
Questa password viene salvata in una variabile Public e usata nella Macro, ma ad ogni esecuzione viene chiesta nuovamente dalla UserForm.
Io invece vorrei che venisse chiesta solo la prima volta che si esegue la Macro.

Dove posso parcheggiare questo valore tra una esecuzione di macro e l'altra?

Grazie
Avatar utente
Dylan666
Moderatore
 
Post: 39539
Iscritto il: 18/11/03 16:46

Sponsor
 

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Anthony47 » 15/11/22 19:45

Se la variabile e' pubblica e immagino di tipo Stringa (Public myPass As String) allora prova a verificare se l'hai gia' memorizzata o non ancora. Tipo
Codice: Seleziona tutto
If myPass = "" Then
    Istruzioni per chiedere la Password
End If
Avatar utente
Anthony47
Moderatore
 
Post: 18597
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Dylan666 » 15/11/22 20:07

Ma la domanda è: se la variabile Public è dichiarata all'inizio della sub stessa, non si inizializza o svuota ogni volta che la rilancio?
Avatar utente
Dylan666
Moderatore
 
Post: 39539
Iscritto il: 18/11/03 16:46

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Anthony47 » 16/11/22 01:15

Una variabile dichiarata in testa a un Modulo (prima di Sub o Function) tramite Dim e' visibile in tutto il codice del Modulo e mantiene il suo valore fino al "ripristino" del vba (il tasto quadrato visibile nella barra degli strumenti standard del vba) o al clear della variabile.

Una variabile dichiarata tramite Public in testa a un Modulo Standard e' visibile in tutto il codice del Progetto, e mantiene il suo valore come nel caso precedente.

Lo puoi testare con questo codice:
Nel primo Modulo standard inizialmente vuoto inserisci:
Codice: Seleziona tutto
Dim cippa As Long   'Visibile nel Modulo

Sub uno()
If cippa = 0 Then
    cippa = cippa + 1
    Beep
End If
End Sub

Sub due()
If cippa > 0 Then
    Beep
End If
End Sub

Sub Dieci()
If Pippa > 0 Then
    Beep
End If
End Sub


Crei un secondo Modulo standard e vi inserisci:
Codice: Seleziona tutto
Public Pippa As Long      'Visibile nel Progetto

Sub tre()
If cippa > 0 Then
    Beep
End If
End Sub


Sub Quatt()
If Pippa = 0 Then
    Pippa = 10
    Beep
End If
End Sub



Esegui piu' volte la Sub Uno:
-la prima volta fara' Beep; le volte successive non piu'

Esegui poi la Sub Due
-fara' beep tutte le volte

Vai su Modulo2 ed esegui la Sub Tre:
-non sentirai mai il beep perche' l'istruzione If cippa > 0 Then fa riferimento a una variable locale alla Sub Tre

Esegui piu' volte la Sub Quatt:
-la prima volta fara' Beep, poi non piu'

Vai su Modulo1 ed esegui la Sub Dieci:
-fara' beep tutte le volte

Il tasto "Ripristina" cancella tutto, anche Cippa e Pippa

Ovviamente puoi azzerare da vba una variabile di questo tipo assegnandole il valore di default.
Es Cippa = 0 (se Cippa di tipo numerico), myPassw = "" (se myPassw di tipo Stringa)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 18597
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Dylan666 » 16/11/22 10:39

Grazie, continuavo ad approcciare il problema nella maniera sbagliata e il tuo suggerimento ha risolto il problema.
Avatar utente
Dylan666
Moderatore
 
Post: 39539
Iscritto il: 18/11/03 16:46

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Anthony47 » 18/11/22 09:57

Pensandoci bene... Da XL2016 esiste la possibilita' di importare direttamente da JSON tramite Menu /Dati /gruppo Recupera e Trasforma, Recupera Dati /da File /da JSON.
Vedi https://support.microsoft.com/en-us/off ... 8e9e616f5a

Se hai queste versioni vedi se e' piu' semplice che farlo via macro
Avatar utente
Anthony47
Moderatore
 
Post: 18597
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Salvare il valore di una variabile VBA

Postdi Anthony47 » 18/11/22 20:16

Ho inserito per errore il messaggio precedente in questa discussione; avrei invece dovuto inserirlo su quest'altra: viewtopic.php?f=26&t=112667
Avatar utente
Anthony47
Moderatore
 
Post: 18597
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Salvare il valore di una variabile VBA":


Chi c’è in linea

Visitano il forum: Anthony47 e 25 ospiti