Esegui una macro all'avvio di Excel - Esempi di codice VBA

Hai bisogno di eseguire una macro all'avvio di Excel? Hai due opzioni:

1. Crea un sottotitolo Workbook_Open() all'interno di "ThisWorkbook".

2. Posiziona un sottotitolo Auto_Open() all'interno di qualsiasi modulo.

Cartella di lavoro_Evento aperto

Crea un sottotitolo "Workbook_Open" all'interno di "ThisWorkbook"

123 Workbook_open ()MsgBox "Questo codice è stato eseguito all'avvio di Excel!"Fine sotto

Auto_Apertura

Usando il secondo metodo: crea semplicemente una subroutine chiamata Auto_Open e inserisci il codice in essa, o chiama un altro sub da lì. Il tuo codice viene eseguito automaticamente all'avvio di Excel.

123 Sottotitoli privati ​​Auto_Apri()MsgBox "Questo codice è stato eseguito all'avvio di Excel!"Fine sottotitolo

Crea e nomina un nuovo foglio di lavoro ogni volta che si apre Excel

Il codice seguente funziona aprendo una cartella di lavoro. Aggiunge automaticamente un nuovo foglio e lo etichetta con la data. Inoltre, controlla che il foglio non esista già, per consentire la possibilità che venga aperto più di una volta al giorno.

Questo codice utilizza l'evento di apertura cartella di lavoro e deve essere inserito nel modulo cartella di lavoro sotto l'evento "Apri libro di lavoro". La funzione Sheet_Exist deve essere inserita in un modulo e questa verifica se il foglio esiste o meno:

123456789101112131415 Cartella di lavoro secondaria privata_Apri()Dim New_Sheet_Name As StringNew_Sheet_Name = Format(Now(), "dd-mm-yy")If Sheet_Exists(New_Sheet_Name) = False ThenCon cartella di lavoroFogli di lavoro.Add().Name = New_Sheet_NameTermina conFinisci seSalvaFine sotto
12345678910111213 Function Sheet_Exists (WorkSheet_Name As String) As BooleanDim Work_sheet come foglio di lavoroFoglio_Esiste = FalsoPer ogni_foglio di lavoro in questa cartella di lavoro. Fogli di lavoroSe Work_sheet.Name = WorkSheet_Name ThenFoglio_Esiste = VeroFinisci seProssimoFine funzione

Per scaricare il file .XLSM per questo tutorial, clicca qui

Imposta il foglio predefinito all'apertura della cartella di lavoro

Vuoi assicurarti che un foglio venga sempre visualizzato per primo quando si apre una cartella di lavoro? Ad esempio, quando apri una cartella di lavoro, il foglio3 è sempre il foglio attivo. Ecco come.

Puoi fare riferimento a un foglio da VBA tramite il nome del programma (es. Sheet3) o tramite il nome della scheda (es. JanData). È meglio usare il nome del programma, perché se il nome della scheda cambia, il codice VBA che fa riferimento a un nome di scheda non funzionerà più. Tuttavia, se si utilizza il nome del programma, un utente può modificare il nome della scheda più volte e la macro funziona ancora.

Per assicurarti che un determinato foglio sia sempre attivato quando si apre una cartella di lavoro, inserisci semplicemente il codice sheet.activate nel sub workbook_open. Questo è un esempio che attiva sheet3 utilizzando il nome del programma ogni volta che si apre una cartella di lavoro.

123 Cartella di lavoro secondaria privata_Apri()Foglio3.AttivaFine sotto

E questo lo fa usando il nome della scheda:

1234 Cartella di lavoro secondaria privata_Apri()Fogli("mionometab").AttivaFine sotto

Nota a margine: è necessario salvare e riavviare Excel affinché funzioni.
Nota a margine: funziona solo se le macro sono abilitate.
Nota a margine: inserisci questo codice nella finestra del codice per l'oggetto ThisWorkbook nel VBE.

Carica modulo ogni volta che si apre la cartella di lavoro

Se desideri caricare un modulo o eseguire del codice VBA quando apri una cartella di lavoro Excel, inserisci il codice nella finestra del codice Thisworkbook e nel sub Workbook_Open.

Dal tuo foglio di calcolo:
1. Premi ALT e F11 per aprire l'editor VB
2. Fare doppio clic sulla parola ThisWorkbook per aprire la finestra del codice
3. Digita il seguente codice nella finestra del codice ThisWorkbook

123 Cartella di lavoro secondaria privata_Apri()UserForm1.ShowFine sottotitolo

Nota a margine: sostituisci Userform1 con il nome del tuo modulo

4. Chiudi Excel e riapri.

wave wave wave wave wave