Grande Anthony, . . .
La macro tuttavia funziona solo se il file è salvato da qualche parte, ovvero: nel momento in cui apro un nuovo file cartel1.xlsx la macro NON parte; se salvo il Cartel1.xlsx e lo riapro la macro si attiva, ma solo la prima volta.
Ho inserito in un file il seguente codice:
- Codice: Seleziona tutto
Private WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If Left(Wb.Name, 5) = "MULTI" Then
Wb.Activate
Call TuaMacro
End If
Foglio1.Cells(10000, 1).End(xlUp).Offset(1, 0) = Workbooks.Count
Foglio1.Cells(10000, 1).End(xlUp).Offset(0, 1) = Wb.Name
End Sub
Private Sub Workbook_Open()
Set App = Application
End Sub
Sub TuaMacro()
MsgBox ("Tua Macro")
End Sub
E' lo stesso suggerito a te piu' alcune istruzioni per registrare gli eventi.
Ho salvato il file, l'ho chiuso e riaperto.
A questo punto tutte le volte che "Apro" un file il cui nome comincia con MULTI sistematicamente scatta la Sub TuaMacro col relativo msgbox, e sempre viene registrato il nome del workbook che viene aperto.
Sia chiaro: affinche' l'evento App_WorkbookOpen sia generato deve esserci un file che
viene aperto nella
stessa istanza del programma Excel che ha aperto il primo file. Quindi se tu aprissi gli altri file in un'altra istanza di Excel (cosa di cui discutiamo in altra tua discussione, vedi
viewtopic.php?f=26&t=105999) tutto l'ambaradan non scatta.
Quanto al discorso " La macro tuttavia funziona solo se il file è salvato da qualche parte, ovvero: nel momento in cui apro un nuovo file cartel1.xlsx la macro NON parte", rilevo un controsenso in quel che scrivi: un file per venire aperto deve esistere; forse tu parli di "creare" un nuovo file?
Ciao