Note: The other languages of the website are Google-translated. Back to English

Wie synchronisiere ich Dropdown-Listen in mehreren Arbeitsblättern in Excel?

Angenommen, Sie haben Dropdown-Listen auf mehreren Arbeitsblättern in einer Arbeitsmappe, die genau die gleichen Dropdown-Elemente enthalten. Jetzt möchten Sie die Dropdown-Listen über Arbeitsblätter hinweg synchronisieren, sodass die Dropdown-Listen in anderen Arbeitsblättern automatisch mit derselben Auswahl synchronisiert werden, sobald Sie ein Element aus einer Dropdown-Liste in einem Arbeitsblatt auswählen. Dieser Artikel enthält einen VBA-Code, der Ihnen bei der Lösung dieses Problems hilft.

Synchronisieren Sie Dropdown-Listen in mehreren Arbeitsblättern mit VBA-Code


Synchronisieren Sie Dropdown-Listen in mehreren Arbeitsblättern mit VBA-Code

Beispielsweise sind die Dropdown-Listen in fünf Arbeitsblättern benannt Blatt1, Blatt2, ... Blatt5, Um die Dropdown-Listen in anderen Arbeitsblättern entsprechend der Dropdown-Auswahl in Sheet1 zu synchronisieren, wenden Sie bitte den folgenden VBA-Code an, um dies zu erledigen.

1. Öffnen Sie Sheet1, klicken Sie mit der rechten Maustaste auf die Blattregisterkarte und wählen Sie sie aus Code anzeigen aus dem Rechtsklick-Menü.

2. In dem Microsoft Visual Basic für Applikationen Fenster, fügen Sie den folgenden VBA-Code in die Blatt1 (Code) Fenster.

VBA-Code: Dropdown-Liste in mehreren Arbeitsblättern synchronisieren

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

Hinweise:

1) Im Code, A2: A11 ist der Bereich, der die Dropdown-Liste enthält. Stellen Sie sicher, dass sich alle Dropdown-Listen in verschiedenen Arbeitsblättern im selben Bereich befinden.
2) Blatt2, Blatt3, Blatt4 und Sheet5 sind Arbeitsblätter, die Dropdown-Listen enthalten, die Sie basierend auf der Dropdown-Liste in Sheet1 synchronisieren möchten;
3) Um weitere Arbeitsblätter im Code hinzuzufügen, fügen Sie bitte die folgenden zwei Zeilen vor der Zeile „Application.EnableEvents = Wahr“, ändern Sie dann den Blattnamen „Sheet5” zum gewünschten Namen.
Setze tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
tSheet1.Range(xRangeStr).Value = Target.Value

3. Drücken Sie die Taste Andere + Q Tasten zum Schließen der Microsoft Visual Basic für Applikationen Fenster.

Von nun an, wenn Sie ein Element aus der Dropdown-Liste in auswählen Blatt1, Die Dropdown-Listen in den angegebenen Arbeitsblättern werden automatisch synchronisiert, um dieselbe Auswahl zu haben. Sehen Sie sich die folgende Demo an.


Demo: Synchronisieren Sie Dropdown-Listen in mehreren Arbeitsblättern in Excel


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (5)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Wie kann ich dies tun, wenn sich meine Dropdowns in unterschiedlichen Bereichen befinden? Zur Erläuterung habe ich ein Dropdown-Menü in Blatt 7, das sich in Zelle B7 befindet, und das gleiche Dropdown-Menü auf Blatt 6 in Zelle B2.

Vielen Dank,
Elaine
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo E,
Der folgende VBA-Code kann helfen.
Hier nehme ich Sheet6 als Hauptarbeitsblatt, klicke mit der rechten Maustaste auf die Registerkarte "Blatt", wähle "Code anzeigen" aus dem Rechtsklickmenü und kopiere dann den folgenden Code in das Fenster "Sheet6 (Code)". Wenn Sie irgendein Element aus der Dropdown-Liste in B2 von Sheet6 auswählen, wird die Dropdown-Liste in B7 von Sheet7 synchronisiert, um dasselbe ausgewählte Element zu haben.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221025
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "B2"
    
    Set tRange = Range("B7")
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Kristall,

Vielen Dank für Ihre Antwort, Ihr Code hat funktioniert! Ich habe eine Zelle direkt unter b2 und b7, b3 und b8, die dieselbe Funktion haben müssen. Ich habe versucht, Ihren Code wie unten gezeigt umzuschreiben, aber das hat nicht funktioniert. Es führte dazu, dass sich b7 anstelle von b8 änderte, als ich b3 änderte. Könnt ihr vielleicht erkennen was ich falsch mache?

Thank you so much!

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221025
    Dim tSheet1 As Worksheet
    Dim tRange1 As Range
    Dime tRange2 As Range
    Dim xRangeStr1 As String
    Dim xRangeStr2 As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr1 = "B2"
    xRangeStr2="B3"
    
    Set tRange1 = Range("B7")
    If Not tRange1 Is Nothing Then
        xRangeStr1 = tRange1.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr1).Value = Target.Value
        Application.EnableEvents = True
    End If
    
    Set tRange2 = Range("B8")
    If Not tRange2 Is Nothing Then
        xRangeStr2 = tRange2.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
        tSheet1.Range(xRangeStr2).Value = Target.Value
        Application.EnableEvents = True
    End If

End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo E,
Mit dem VBA-Code, den ich Ihnen oben geantwortet habe, stimmt etwas nicht.
Probieren Sie für die von Ihnen erwähnte neue Frage den folgenden Code aus.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221031
    
    Dim xBool1 As Boolean
    Dim xBool2 As Boolean
    Dim xRgStr As String
    Dim tRange As Range
    
    xRangeStr1 = "B2"
    xRangeStr2 = "B3"
    xRgStr = ""
    
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    xBool1 = Intersect(Target, Range(xRangeStr1)) Is Nothing
    xBool2 = Intersect(Target, Range(xRangeStr2)) Is Nothing
    
    If xBool1 And xBool2 Then Exit Sub
    
    xRgStr = Target.Address(False, False, xlA1, False, False)
    
    If Target.Address(False, False, xlA1, False, False) = xRangeStr1 Then
        xRgStr = "b7"
    ElseIf Target.Address(False, False, xlA1, False, False) = xRangeStr2 Then
        xRgStr = "b8"
    End If
    If xRgStr = "" Then Exit Sub
    
    Application.EnableEvents = False
    Set tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
    tSheet1.Range(xRgStr).Value = Target.Value
    Application.EnableEvents = True

End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Kristall,

vielen Dank für deine Antwort, das hat funktioniert! Wie könnte ich den Code ändern, um eine weitere Zelle in demselben Blatt 6, B3, hinzuzufügen, die auch mit B8 in Blatt 7 synchronisiert werden musste? Ich habe versucht, es unten zu ändern, aber es endet damit, dass der Inhalt von B3 auf Blatt 6 in B7 auf Blatt 7 anstelle von B8 gesetzt wird.


Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
'Aktualisiert von Extendoffice 20221025
Dim tSheet1 als Arbeitsblatt
Dim tRange1 als Bereich
Dim tRange2 als Bereich
Dim xRangeStr1 als Zeichenfolge
Dim xRangeStr2 als Zeichenfolge
On Error Resume Next
Wenn Target.Count > 1, dann Sub verlassen

xRangeStr1 = "B2"
xRangeStr2 = "B3"

Setze tRange1 = Range("B7")
Wenn nicht, dann ist tRange1 nichts
xRangeStr1 = tRange1.Adresse
Application.EnableEvents = Falsch
Setze tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
tSheet1.Range(xRangeStr1).Value = Target.Value
Application.EnableEvents = Wahr
End If

Setze tRange2 = Range("B8")
Wenn nicht, dann ist tRange2 nichts
xRangeStr2 = tRange2.Adresse
Application.EnableEvents = Falsch
Setze tSheet1 = ActiveWorkbook.Worksheets("Sheet7")
tSheet1.Range(xRangeStr2).Value = Target.Value
Application.EnableEvents = Wahr
End If

End Sub
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL