La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Salve,
Ho realizzato n. 3 Macro: ABC, XYZ, KZW
Vorrei condizionare l'esecuzione della Macro ABC (MAIN) all'esecuzione delle altre macro (SUB)
Ho dichiarato nelle SUB una variabile Boolean
Public EseguitaXYZ As Boolean Sub XYZ() EseguitaXYZ = True ' 'codice da eseguire End Sub
per la macro XYZ, e
Public EseguitaKZV As Boolean Sub KZV() EseguitaKZV = True ' 'codice da eseguire End Sub
per la macro xyz.
Ho inserito nella macro MAIN questo codice
Sub Main() If EseguitaXYZ Then ' 'codice da eseguire EseguitaXYZ = False ElseIf EseguitaKZV Then ' 'codice da eseguire EseguitaKZV = False End If End Sub
La Macro non gira... a volte da variabile "EseguitaKZV" non riconosciuta
Un aiuto? Forse è sbagliata la funzione EseIF?
Grazie
Mah... A parte che, almeno per comprensibilità, dovresti mettere If EseguitaXYZ = True Then, non si capisce perché condizionare l'esecuzione di una Sub al fatto che una variabile nella Sub precedente sia TRUE o FALSE.
Metterle a cascata no? Prima Sub: se la condizione per cui "EseguitaXYZ" = True tanto vale fare la Call alla prossima Sub. Se la condizione per cui "EseguitaXYZ" = False, Exit Sub (oppure Call alla Sub richiamata se "EseguitaKZV" = True) e via cascando. O no?
Comunque:
If ... Else... End If se hai due sole condizioni;
If ... ElseIf... ElseIf... ElseIf... Else... End If per più condizioni.
In ogni caso preferibile
Select Case... Case Is... Case Is... Case Else... End Select