Condividi:        

Attivare Macro se viene aperto un file con determinato nome

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

Attivare Macro se viene aperto un file con determinato nome

Postdi christianghz » 14/12/15 09:39

Ciao
non trovo soluzioni a questo dubbio, forse non è proprio possibile farlo.

Si può fare in modo che una macro contenuta in un file aperto si "autolanci"se viene aperto un file con un determinato nome?
O se viene aperto un file che contiene un foglio con un determinato nome?
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: Attivare Macro se viene aperto un file con determinato n

Postdi Marius44 » 14/12/15 15:09

Ciao
si dovrebbe poter fare se l'apertura del nuovo file avviene tramite codice inserito in una macro del file aperto.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 658
Iscritto il: 07/09/15 22:00

Re: Attivare Macro se viene aperto un file con determinato n

Postdi christianghz » 14/12/15 15:15

Grazie della risposta Mario,
quello sì sicuramente, ma quello di cui ho bisogno è che un file excel già aperto monitori l'apertura dei file e quando si apre un file con un determinato nome o un determinato foglio attivi una macro.
Questo perchè io ho bisogno che la macro si avvii quando viene aperto un file excel che genera il mio gestionale.
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: Attivare Macro se viene aperto un file con determinato n

Postdi Anthony47 » 14/12/15 15:42

Si puo' fare sfruttando l'evento Application.WorkbookOpen, la cui gestione deve essere precedentemente abilitata.
Nel file che contiene la macro che vuoi lanciare, nel modulo ThisWorkbook inserisci questo codice:
Codice: Seleziona tutto
Private WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If Wb.Name = "MULTI_B51202.xlsm" Then   '*** Vedi Testo
    Wb.Activate
    Call TuaMacro
End If
End Sub

Private Sub Workbook_Open()
    Set App = Application
End Sub

Salva il file, chiudilo e riaprilo.

A questo punto, quando viene aperto il file MULTI_B51202.xlsm verra' eseguita TuaMacro
Adatta il codice per nome file e nome macro.

Eventualmente controlla se il file aperto contiene un foglio con nome che cerchi.

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

Re: Attivare Macro se viene aperto un file con determinato n

Postdi christianghz » 15/12/15 10:20

Grande Anthony,

Siccome non mi funzionava sempre ho modificato la tua macro come segue, per escludere errori sul nome del file che vado ad aprire:
Codice: Seleziona tutto
If Wb.Name Like "Cartel*" Then
    Wb.Activate


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.
Poi perchè si attivi sono costretto a chiudere e riaprire il file che contiene la Private, e riaprire il file Cartel.
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: Attivare Macro se viene aperto un file con determinato n

Postdi Anthony47 » 15/12/15 23:52

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
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Attivare Macro se viene aperto un file con determinato n

Postdi christianghz » 15/12/15 23:57

Esatto, parlo di un nuovo file.

E allora sono fregato perché sempre del file che esce dal gestionale si tratta. E anche dei file xls che estraggo da microsoftware mappoint.


Grazie mille anthony
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: Attivare Macro se viene aperto un file con determinato n

Postdi Anthony47 » 16/12/15 00:08

Intendi "un nuovo file che crei nella sessione Excel aperta dal gestionale" o "un nuovo file che crei nella sessione Excel in cui e' gia' aperto il file che contiene il codice macro"?
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Attivare Macro se viene aperto un file con determinato nome":


Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti