Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Salve a tutti e scusate se mi Intrometto.
Non sarebbe più comodo usare un menù PopUp?
Ecco un esempio:
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Ciao a tutti,
Visto che in questo forum non di rado mi sono ritrovato ad ammirare codici macro inverosimili, mi sono chiesto e rigiro a voi esperti. Esiste la possibilità tramite macro richiamare altre macro? Mi spiego meglio, ho una cartella con una ventina di macro con numero progressivo (macro1, macro2, macro3,….. sino ad arrivare a macro20) è possibile tramite macro richiamare 5 di queste macro esempio: macro3, macro7, macro 11, macro18 e macro20 e poi decidere quale di queste 5 devo eseguire?
Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Risposta accettata dall'autore della domanda
Salve a tutti e scusate se mi Intrometto.
Non sarebbe più comodo usare un menù PopUp?
Ecco un esempio:
Risposta accettata dall'autore della domanda
Ciao a tutti,
Visto che in questo forum non di rado mi sono ritrovato ad ammirare codici macro inverosimili, mi sono chiesto e rigiro a voi esperti. Esiste la possibilità tramite macro richiamare altre macro? Mi spiego meglio, ho una cartella con una ventina di macro con numero progressivo (macro1, macro2, macro3,….. sino ad arrivare a macro20) è possibile tramite macro richiamare 5 di queste macro esempio: macro3, macro7, macro 11, macro18 e macro20 e poi decidere quale di queste 5 devo eseguire?
Vedi un po' partendo da qui(codice da copia/incollare in un modulo standard) ed eseguendo Macro10000 a capire come funziona:
Public Sub Macro10000()
Dim lRisposta As Long
Dim lng As Long
For lng = 1 To 5 Step 2
lRisposta = MsgBox("Eseguire la Macro" & lng & "?", vbYesNo + vbQuestion, "Attenzione")
If lRisposta = vbYes Then
Application.Run ("Macro" & lng)
End If
Next
End Sub
Public Sub Macro1()
MsgBox "Ciao da Macro1"
End Sub
Public Sub Macro2()
MsgBox "Ciao da Macro2"
End Sub
Public Sub Macro3()
MsgBox "Ciao da Macro3"
End Sub
Public Sub Macro4()
MsgBox "Ciao da Macro4"
End Sub
Public Sub Macro5()
MsgBox "Ciao da Macro5"
End Sub
Public Sub Macro6()
MsgBox "Ciao da Macro6"
End Sub
In pratica lancio le Macro1/3/5 da Macro10000, chiedendo di volta in volta all'utente se conferma il lancio della singola macro. Da qui, il mondo... ;-)
Un'alternativa è dichiarrare un Array con i nomi delle macro da eseguire:
Public Sub Macro10000()
Dim lRisposta As Long
Dim lng As Long
Dim myArray As Variant
myArray = Array("Macro2", "Macro3", "Macro4", "Macro6")
For lng = LBound(myArray) To UBound(myArray)
lRisposta = MsgBox("Eseguire" & myArray(lng) & "?", vbYesNo + vbQuestion, "Attenzione")
If lRisposta = vbYes Then
Application.Run (myArray(lng))
End If
Next
End Sub
Grazie Mauro,
Funziona in modo eccezionale, sei stato un grande. A proposito, quello che fai a favore di noi inesperti non lo prendo mai per scontato. Grazie ancora.
Carissimo Mauro,
Sei un fenomeno. Quando leggo le varie risposte che dai ai post del forum e sostieni che praticamente con il vba si può praticamente fare tutto credo che la tua non sia un'esagerazione. Ho utilizzato delle 2 macro postate la seconda che mi ha permesso di inserire i nomi delle mie macro. Volevo aggiungere, è possibile, scusa per il è possibile....... una volta eseguito la macro da me scelta invece di scorrere le restanti fare in modo che si chiuda il MsgBox? Esempio eseguo Macro1, invece di scorrere Macro2, Macro3, Macro4 e Macro5 si chiude dopo Macro1.
Si può fare quasi tutto... ;-)
Non so quale delle due soluzioni hai scelto.
La prima modificala così:
If lRisposta = vbYes Then
Application.Run ("Macro" & lng)
Exit For
End If
La seconda così:
If lRisposta = vbYes Then
Application.Run (myArray(lng))
Exit For
End If
Carissimo Mauro,
Sei un fenomeno. Quando leggo le varie risposte che dai ai post del forum e sostieni che praticamente con il vba si può praticamente fare tutto credo che la tua non sia un'esagerazione. Ho utilizzato delle 2 macro postate la seconda che mi ha permesso di inserire i nomi delle mie macro. Volevo aggiungere, è possibile, scusa per il è possibile....... una volta eseguito la macro da me scelta invece di scorrere le restanti fare in modo che si chiuda il MsgBox? Esempio eseguo Macro1, invece di scorrere Macro2, Macro3, Macro4 e Macro5 si chiude dopo Macro1.