Roberto nota correttamente che un utente può fare clic con il pulsante destro del mouse su una scheda del foglio di lavoro, quindi selezionare Visualizza codice per aprire il codice VBA del foglio di lavoro selezionato. Ha un codice scritto che gestisce automaticamente celle, colonne e righe. Questo codice deve essere disponibile in ogni foglio di lavoro di una cartella di lavoro, anche se l’utente aggiunge nuovi fogli di lavoro. Roberto si chiede se esista un modo, utilizzando VBA, per copiare automaticamente il codice di un foglio di lavoro in un nuovo foglio di lavoro nella cartella.
Ci sono alcuni modi per affrontare questo problema. Un modo, e forse il modo più semplice, consiste nel rimuovere le macro dal foglio di codice del foglio di lavoro e spostarle nel modulo Questa_cartella_di_lavoro. Il foglio di codice del foglio di lavoro è ciò che vedi quando fai clic con il pulsante destro del mouse su una scheda del foglio di lavoro. Il codice in quel foglio ha lo scopo di gestire gli eventi che si verificano nel foglio di lavoro e solo in quel foglio di lavoro. Se si sposta il codice nel modulo Questa_cartella_di_lavoro, è comunque possibile gestire gli eventi, ma tali eventi si applicano a tutti i fogli di lavoro nella cartella di lavoro.
Ad esempio, quando fai clic con il pulsante destro del mouse su una scheda del foglio di lavoro e guardi la finestra del codice, inizialmente stai lavorando nell’evento Worksheet_SelectionChange. Se si desidera spostare questo codice nel modulo Questa_cartella_di_lavoro, è possibile inserirlo all’interno dell’evento Workbook_SheetSelectionChange.
Se un tale “cambio di livello” del codice non funziona per qualche motivo, un altro approccio consiste nel creare un foglio di lavoro modello all’interno della cartella di lavoro. Assegnagli un nome come “Master” e assicurati che includa tutto il codice che desideri aggiungere ai fogli di lavoro appena creati. Puoi anche nascondere questo foglio di lavoro, se lo desideri, in modo che non distragga gli utenti. Quindi, inserisci la seguente macro nel modulo Questa_cartella_di_lavoro:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Questo codice viene attivato ogni volta che un nuovo foglio di lavoro viene aggiunto alla cartella di lavoro. Trova il nome del foglio di lavoro appena aggiunto (che sarà qualcosa come “Foglio4”) e salva quel nome in una variabile temporanea. Il codice copia quindi il foglio di lavoro “Master” nella cartella di lavoro (copiandone anche le macro), elimina il foglio di lavoro originariamente creato e quindi rinomina la nuova copia di “Master” in modo che abbia lo stesso nome del foglio di lavoro originale.
Se il foglio “Master” fosse nascosto, dovresti aggiungere anche il codice per scoprire il nuovo foglio, che altrimenti risulterebbe anch’esso nascosto. Il codice diventerebbe quindi come il seguente:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)