Wie erstellt man dynamische, kaskadierende Dropdown-Listen in Excel?
Möglicherweise wissen Sie bereits, wie man eine kaskadierende Validierungs-Dropdown-Liste in Excel erstellt – aber wie gelingt es, dynamische kaskadierende Listenfelder in Excel zu erstellen? Dieser Artikel stellt eine VBA-Methode vor, mit der Sie genau das erreichen können.
Erstellen dynamischer kaskadierender Listenfelder mit VBA-Code
Erstellen dynamischer kaskadierender Listenfelder mit VBA-Code
Wie im folgenden Screenshot gezeigt, erstellen Sie ein übergeordnetes Listenfeld mit den eindeutigen Werten aus der Spalte „Getränk“ und zeigen Sie im zweiten Listenfeld automatisch alle zugehörigen Werte basierend auf der Auswahl im übergeordneten Feld an. Der folgende VBA-Code unterstützt Sie dabei – gehen Sie wie folgt vor:

1. Zunächst müssen Sie alle eindeutigen Werte aus der Spalte „Getränk“ extrahieren. Wählen Sie eine leere Zelle aus, geben Sie die Matrixformel =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),„") in die Formel-Leiste ein und drücken Sie anschließend Strg + Umschalt + Eingabe. Ziehen Sie dann am Ausfüllkästchen, um alle eindeutigen Werte zu erhalten. Siehe Screenshot:

Hinweis: In der Formel ist $A$2:$A$11 der Bereich, aus dem Sie eindeutige Werte extrahieren. J1 ist die Zelle direkt über der Position Ihrer Formel.
Tipp: Falls die Formel schwer zu merken und zu handhaben ist, bietet sich das Doppelte/ Eindeutige Zellen auswählen-Tool von Kutools für Excel als gute Alternative an, um schnell alle eindeutigen Werte aus einer Spalte zu extrahieren.
Wählen Sie die Spalte mit den eindeutigen Werten aus, die Sie extrahieren möchten. Aktivieren Sie das Tool, indem Sie auf Kutools > Auswählen > Doppelte/ Eindeutige Zellen auswählen klicken. Im Dialogfeld Doppelte/ Eindeutige Zellen auswählen wählen Sie die Option Eindeutige Werte (Erster Duplikat eingeschlossen) und klicken auf die Schaltfläche OK. Anschließend sind alle eindeutigen Werte in der Spalte markiert – kopieren Sie sie und fügen Sie sie an einer neuen Stelle ein. Siehe Screenshot:

Kutools für Excel: mit mehr als 200 praktischen Excel-Add-Ins, kostenlos und uneingeschränkt 60 Tage lang testbar.Jetzt herunterladen und kostenlos testen!
2. Fügen Sie zwei separate Listenfelder ein, indem Sie auf Entwickler > Einfügen > Listenfeld (ActiveX-Steuerelement) klicken. Siehe Screenshot:

3. Klicken Sie mit der rechten Maustaste auf das übergeordnete Listenfeld und wählen Sie im Kontextmenü Eigenschaften. Ändern Sie im Eigenschaften-Dialogfeld das Feld (Name) in Getränk oder einen anderen gewünschten Namen, geben Sie den Zellbereich mit den extrahierten eindeutigen Werten in das Feld ListFillRange ein und schließen Sie den Dialog.

4. Wiederholen Sie Schritt (Name), um im Eigenschaften-Dialogfeld den Namen des zweiten Listenfelds in „Artikel“ zu ändern.
5. Klicken Sie mit der rechten Maustaste auf die Arbeitsblattregisterkarte und wählen Sie Code anzeigen aus dem Kontextmenü. Anschließend fügen Sie den folgenden VBA-Code in das Code-Fenster ein. Siehe Screenshot:
VBA-Code: Dynamische kaskadierende Listenfelder in Excel erstellen
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub Hinweis: Im Code sind „Getränk“ und „Artikel“ die Namen der beiden Listenfelder – passen Sie diese bitte entsprechend Ihren eigenen Bezeichnungen an.

6. Drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic für Applikationen zu schließen.
7. Deaktivieren Sie den Entwurfsmodus, indem Sie auf Entwickler > Entwurfsmodus klicken.
Ab sofort werden beim Auswählen einer Getränkesorte wie „Kaffee“ im übergeordneten Listenfeld automatisch alle Kaffee-Artikel im zweiten Listenfeld angezeigt. Wählen Sie „Tee“ oder „Wein“ aus, erscheinen entsprechend ausschließlich Tee- bzw. Wein-Artikel im zweiten Listenfeld. Siehe Screenshot:

Verwandte Artikel:
- Wie löscht man abhängige Dropdown-Listen in Excel automatisch, sobald sich die übergeordnete Auswahl ändert?
- Wie erstellt man abhängige, kaskadierende Dropdown-Listen in Excel?
- Wie lassen sich andere Zellen automatisch ausfüllen, sobald ein Wert aus einer Excel-Dropdown-Liste ausgewählt wird?
- Wie erstellt man einen Dropdown-Kalender in Excel?
- W ie speichert oder behält man die Auswahl von ActiveX-Listenfeldern in Excel?
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor.Kutools für Excel bietet über 300 erweiterte Funktionen zur Steigerung der Produktivität und Zeit sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am dringendsten benötigen...
Office Tab bringt eine tabbasierte Oberfläche in Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie tabbasiertes Bearbeiten und Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters – statt jedes in einem separaten Fenster zu öffnen.
- Steigert Ihre Produktivität um 50 % und erspart Ihnen täglich Hunderte von Mausklicks!
Alle Kutools-Add-Ins – ein Installationsprogramm
Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook und PowerPoint sowie Office Tab Pro – ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.
- Alles-in-einem-Paket— Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro
- Ein Installationsprogramm, eine Lizenz— innerhalb weniger Minuten eingerichtet (MSI-fähig)
- Funktioniert besser zusammen— optimierte Produktivität über alle Office-Anwendungen hinweg
- 30-tägige Vollversion zum Testen— keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis— sparen Sie im Vergleich zum Kauf einzelner Add-Ins