Nomi delle schede del foglio di lavoro dinamico (Microsoft Excel)
Probabilmente sai già che puoi modificare il nome di una scheda del foglio di lavoro facendo doppio clic sulla scheda e fornendo un nuovo nome. E se volessi farlo in modo dinamico, tuttavia? Cosa succede se si desidera che il valore nella cella A1 venga visualizzato automaticamente come nome della scheda?
Sfortunatamente, Excel non fornisce una funzione intrinseca per gestire questo tipo di attività. È un compito relativamente semplice sviluppare una tale funzione utilizzando una macro che farà il lavoro per te. Ad esempio, la seguente macro cambierà il nome della scheda al contenuto di A1:
Sub myTabName() ActiveSheet.Name = ActiveSheet.Range("A1") End Sub
Ci sono diversi elementi importanti da notare su questa macro. Prima di tutto, non c’è controllo degli errori. Ciò significa che se A1 contiene un valore che sarebbe illegale per un nome di scheda, la macro genera un errore.
In secondo luogo, la macro deve essere eseguita manualmente.
Cosa succede se si desidera una macro più robusta che controlli gli errori e venga eseguita automaticamente? Il risultato è un po ‘più lungo, ma comunque non eccessivamente complesso:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Set Target = Range("A1") If Target = "" Then Exit Sub On Error GoTo Badname ActiveSheet.Name = Left(Target, 31) Exit Sub Badname: MsgBox "Please revise the entry in A1." & Chr(13) _ & "It appears to contain one or more " & Chr(13) _ & "illegal characters." & Chr(13) Range("A1").Activate End Sub
Per impostare questa macro, segui questi passaggi:
-
Apri una nuova cartella di lavoro che contiene un solo foglio di lavoro.
-
Fare clic con il pulsante destro del mouse sulla scheda del foglio di lavoro e selezionare Visualizza codice dal menu contestuale risultante. Excel visualizza l’editor VBA.
-
Incolla (o digita) la macro sopra nella finestra del codice.
-
Chiudi l’editor VBA.
-
Individua la cartella XLStart sul tuo sistema. (Usa le funzionalità di ricerca di Windows per individuare la cartella.)
-
Salvare la cartella di lavoro come modello Excel abilitato per la macro utilizzando il nome Book.xltm nella directory XLStart. Ciò fa sì che il modello diventi il tuo modello per qualsiasi nuova cartella di lavoro che crei.
-
Salva di nuovo la cartella di lavoro come modello abilitato per le macro nella stessa directory, questa volta utilizzando il nome Sheet.xltm. Ciò fa sì che il modello diventi il modello per tutti i nuovi fogli di lavoro inseriti in una cartella di lavoro.
-
Chiudi e riavvia Excel.
Ora, ogni volta che si modifica il valore nella cella A1, viene aggiornata anche la scheda del foglio di lavoro.
C’è un avvertimento sull’utilizzo di questo suggerimento: se il valore nella cella A1 è una data e desideri che la scheda del foglio di lavoro contenga quella data, potresti non ottenere ciò che ti aspetti. Il motivo è semplice: Excel memorizza le date internamente come numeri di serie e questo è ciò che viene assegnato alla scheda del foglio di lavoro, non una data formattata. Se stai lavorando con le date, dovrai cambiare ciò che è effettivamente assegnato al nome della scheda:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Set Target = Range("A1") If Target = "" Then Exit Sub On Error GoTo Badname ActiveSheet.Name = Format(Target, "mmm-dd-yy") Exit Sub Badname: MsgBox "Please revise the entry in A1." & Chr(13) _ & "It appears to contain one or more " & Chr(13) _ & "illegal characters." & Chr(13) Range("A1").Activate End Sub
Nota che l’unica modifica qui è ciò che viene assegnato alla proprietà Name del foglio di lavoro: è una data formattata. Puoi, se preferisci, modificare il formato della data utilizzato nella macro. Non dovresti, tuttavia, scegliere un formato che utilizza le barre perché quelle sono illegali nei nomi dei fogli di lavoro.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (7993) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.
Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: