Skip to main content

Come sincronizzare gli elenchi a discesa in più fogli di lavoro in Excel?

Author: Siluvia Last Modified: 2025-05-30

Supponiamo che tu abbia elenchi a discesa su diversi fogli di lavoro in una cartella di lavoro che contengono esattamente gli stessi elementi a discesa. Ora vuoi sincronizzare gli elenchi a discesa tra i fogli di lavoro in modo che, una volta selezionato un elemento da un elenco a discesa in un foglio di lavoro, gli elenchi a discesa negli altri fogli di lavoro vengano automaticamente sincronizzati con la stessa selezione. Questo articolo fornisce un codice VBA per aiutarti a risolvere questo problema.

Sincronizza gli elenchi a discesa in più fogli di lavoro con il codice VBA


Sincronizza gli elenchi a discesa in più fogli di lavoro con il codice VBA

Ad esempio, gli elenchi a discesa si trovano in cinque fogli di lavoro denominati Foglio1, Foglio2, ..., Foglio5, per sincronizzare gli elenchi a discesa negli altri fogli di lavoro in base alla selezione a discesa nel Foglio1, applica il seguente codice VBA per farlo.

1. Apri Foglio1, fai clic con il tasto destro sul tab del foglio e seleziona Visualizza Codice dal menu contestuale.

A screenshot showing the right-click menu on Sheet1 to view the code in Excel

2. Nella finestra Microsoft Visual Basic for Applications, incolla il seguente codice VBA nella finestra Foglio1 (Codice).

A screenshot showing the Microsoft Visual Basic for Applications window where the VBA code is pasted in Excel

Codice VBA: Sincronizza l'elenco a discesa in più fogli di lavoro

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220815
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "A2:A11"

    Set tRange = Intersect(Target, Range(xRangeStr))
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet2")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet3")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet4")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub

Note:

1) Nel codice, A2:A11 è l'intervallo contenente l'elenco a discesa. Assicurati che tutti gli elenchi a discesa siano nello stesso intervallo nei diversi fogli di lavoro.
2) Foglio2, Foglio3, Foglio4 e Foglio5 sono i fogli di lavoro che contengono gli elenchi a discesa che desideri sincronizzare in base all'elenco a discesa nel Foglio1;
3) Per aggiungere ulteriori fogli di lavoro al codice, aggiungi le seguenti due righe prima della riga “Application.EnableEvents = True”, quindi cambia il nome del foglio “Foglio5” con quello desiderato.
Set tSheet1 = ActiveWorkbook.Worksheets("Foglio5")
tSheet1.Range(xRangeStr).Value = Target.Value

3. Premi i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.

Da ora in poi, quando selezioni un elemento dall'elenco a discesa nel Foglio1, gli elenchi a discesa nei fogli di lavoro specificati verranno sincronizzati automaticamente per avere la stessa selezione. Guarda la demo qui sotto.

A GIF showing how the drop-down lists synchronize across worksheets when an item is selected in Excel


Demo: Sincronizza gli elenchi a discesa in più fogli di lavoro in Excel

 

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!