Hoe maak je dynamische, cascaderende keuzelijsten in Excel?
U weet misschien al hoe u een gecascadeerde validatiekeuzelijst in Excel maakt. Maar hoe creëert u dynamische, gecascadeerde keuzelijsten in Excel? In dit artikel wordt een VBA-methode beschreven om dat voor elkaar te krijgen.
Maak dynamische cascaderende keuzelijsten met VBA-code
Maak dynamische cascaderende keuzelijsten met VBA-code
Zoals in de onderstaande afbeelding te zien is, moet u een hoofdkeuzelijst maken met de unieke waarden uit de kolom „Drink” en vervolgens alle bijbehorende waarden tonen in de tweede keuzelijst, afhankelijk van de selectie in de hoofdkeuzelijst. De volgende VBA-code helpt u hierbij — volg deze stappen.

1. Selecteer eerst een lege cel en voer de matrixformule =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),„") in de formulebalk in. Druk vervolgens op Ctrl + Shift + Enter. Sleep daarna de vulgreep om alle unieke waarden op te halen. Zie afbeelding:

Opmerking: In de formule is $A$2:$A$11 het bereik waaruit u unieke waarden wilt extraheren. J1 is de cel boven de cel waarin uw formule zich bevindt.
Tip: Als de formule te lastig is om te onthouden en te gebruiken, is de Selecteer duplicaat/unieke cellen-functie van Kutools voor Excel een uitstekende keuze om snel alle unieke waarden uit een kolom te extraheren.
Selecteer de kolom met de unieke waarden die u wilt extraheren. Activeer de functie door te klikken op Kutools > Selecteren > Selecteer duplicaat/unieke cellen. In het dialoogvenster Selecteer duplicaat/unieke cellen kiest u de optie Unieke waarden (Eerste duplicaat opnemen) en klikt u op OK. Vervolgens worden alle unieke waarden in de kolom geselecteerd. Kopieer en plak ze op een nieuwe locatie. Zie afbeelding:

Kutools voor Excel: met meer dan 200 handige Excel-add-ins, gratis uit te proberen zonder beperkingen gedurende 60 dagen.Download en start nu uw gratis proefversie!
2. Voeg twee keuzelijsten afzonderlijk in door te klikken op Ontwikkelaar > Invoegen > Keuzelijst (ActiveX-besturingselement). Zie afbeelding:

3. Klik met de rechtermuisknop op de hoofdkeuzelijst en selecteer Eigenschappen in het contextmenu. Wijzig in het dialoogvenster Eigenschappen het veld (Naam) naar Drink of een andere gewenste naam, voer het celbereik met de geëxtraheerde unieke waarden in bij het veld ListFillRange en sluit het dialoogvenster.

4. Herhaal stap 3 om het veld (Naam) van de tweede keuzelijst in het dialoogvenster Eigenschappen te wijzigen in Item.
5. Klik met de rechtermuisknop op het werkbladtabblad en selecteer Code weergeven in het contextmenu. Kopieer vervolgens de onderstaande VBA-code naar het codovenster. Zie afbeelding:
VBA-code: Maak dynamische cascaderende keuzelijsten in Excel
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 Opmerkingen: In de code zijn Drink en Item de namen van de twee keuzelijsten; pas deze aan naar uw eigen namen.

6. Druk op de toetsencombinatie Alt+Q om het venster Microsoft Visual Basic for Applications te sluiten.
7. Schakel de ontwerpmodus uit door te klikken op Ontwikkelaar > Ontwerpmodus.
Vanaf nu ziet u, zodra u een dranksoort zoals Koffie selecteert in de hoofdkeuzelijst, alle bijbehorende koffie-items in de tweede lijst. Kiest u Thee of Wijn, dan worden alleen de thee- of wijnitems weergegeven in die tweede keuzelijst. Zie afbeelding:

Gerelateerde artikelen:
- Hoe wis je een cel met een afhankelijke keuzelijst nadat de selectie is gewijzigd in Excel?
- Hoe maak je afhankelijke cascaderende keuzelijsten in Excel?
- Hoe vul je automatisch andere cellen in bij het selecteren van waarden in een Excel-keuzelijst?
- Hoe maak je een keuzelijstkalender in Excel?
- H oe bewaar of behoud je selecties van ActiveX-keuzelijsten in Excel?
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins