Selecteer meerdere items in een vervolgkeuzelijst in Excel

Een van mijn collega's vroeg me of het mogelijk is om meerdere selecties te maken in een vervolgkeuzelijst in Excel.

Wanneer u een vervolgkeuzelijst maakt, kunt u slechts één selectie maken. Als u een ander item selecteert, wordt het eerste vervangen door de nieuwe selectie.

Hij wilde meerdere selecties maken uit dezelfde vervolgkeuzelijst op zo'n manier dat de selecties worden toegevoegd aan de reeds aanwezige waarde in de cel.

Iets zoals hieronder op de foto:

U kunt dit op geen enkele manier doen met de ingebouwde functies van Excel.

De enige manier is om een ​​VBA-code te gebruiken, die wordt uitgevoerd wanneer u een selectie maakt en de geselecteerde waarde toevoegt aan de bestaande waarde.

Bekijk video - Meerdere items selecteren uit een Excel-vervolgkeuzelijst

Meerdere selecties maken in een vervolgkeuzelijst

In deze tutorial laat ik je zien hoe je meerdere selecties maakt in een Excel-vervolgkeuzelijst (met herhaling en zonder herhaling).

Dit is een van de meest populaire Excel-tutorials op deze site. Omdat ik veel vergelijkbare vragen krijg, heb ik besloten om aan het einde van deze tutorial een FAQ-sectie te maken. Dus als je na het lezen nog vragen hebt, bekijk dan eerst de FAQ sectie.

Het maken van een vervolgkeuzelijst die meerdere selecties mogelijk maakt, bestaat uit twee delen:

  • De vervolgkeuzelijst maken.
  • De VBA-code toevoegen aan de back-end.

De vervolgkeuzelijst maken in Excel

Hier zijn de stappen om een ​​vervolgkeuzelijst in Excel te maken:

  1. Selecteer de cel of het celbereik waar u de vervolgkeuzelijst wilt laten verschijnen (C2 in dit voorbeeld).
  2. Ga naar Gegevens -> Gegevenshulpmiddelen -> Gegevensvalidatie.
  3. Selecteer in het dialoogvenster Gegevensvalidatie op het tabblad Instellingen 'Lijst' als Validatiecriteria.
  4. Selecteer in het veld Bron de cellen met de gewenste items in de vervolgkeuzelijst.
  5. Klik OK.

Nu heeft cel C2 een vervolgkeuzelijst met de itemnamen in A2:A6.

Vanaf nu hebben we een vervolgkeuzelijst waar u één item tegelijk kunt selecteren (zoals hieronder weergegeven).

Om deze vervolgkeuzelijst in te schakelen, zodat we meerdere selecties kunnen maken, moeten we de VBA-code aan de achterkant toevoegen.

De volgende twee secties van deze tutorial geven je de VBA-code om meerdere selecties in de vervolgkeuzelijst toe te staan ​​(met en zonder herhaling).

VBA-code om meerdere selecties in een vervolgkeuzelijst toe te staan ​​(met herhaling)

Hieronder staat de Excel VBA-code waarmee we meer dan één item uit de vervolgkeuzelijst kunnen selecteren (herhalingen in selectie toestaan):

Private Sub Worksheet_Change (ByVal Target As Range) 'Code by Sumit Bansal from https://trumpexcel.com' Om meerdere selecties te maken in een vervolgkeuzelijst in Excel Dim Oldvalue As String Dim Newvalue As String On Error Ga naar Exitsub If Target.Address = "$C$2" Als Target.SpecialCells(xlCellTypeAllValidation) niets is, ga dan naar Exitsub Anders: If Target.Value = "" Ga dan naar Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Anders Target.Value = Oldvalue & ", " & Newvalue End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Nu moet je deze code in een module in VB Editor plaatsen (zoals hieronder weergegeven in het gedeelte 'Waar de VBA-code plaatsen').

Als je deze code in de backend hebt geplaatst (later in deze tutorial behandeld), kun je meerdere selecties maken in de vervolgkeuzelijst (zoals hieronder weergegeven).

Houd er rekening mee dat als u een item meer dan één keer selecteert, het opnieuw wordt ingevoerd (herhaling is toegestaan).

Probeer het zelf… Download het voorbeeldbestand

VBA-code om meerdere selecties in een vervolgkeuzelijst toe te staan ​​(zonder herhaling)

Veel mensen hebben gevraagd naar de code om meerdere items uit een vervolgkeuzelijst te selecteren zonder herhaling.

Hier is de code die ervoor zorgt dat een item maar één keer kan worden geselecteerd, zodat er geen herhalingen zijn:

Private Sub Worksheet_Change (ByVal Target As Range) 'Code by Sumit Bansal from https://trumpexcel.com' Om meerdere selecties in een vervolgkeuzelijst in Excel toe te staan ​​(zonder herhaling) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = Waar bij fout GoTo Exitsub If Target.Address = "$C$2" Then If Target.SpecialCells(xlCellTypeAllValidation) Is niets, dan GoTo Exitsub Anders: If Target.Value = "" Ga dan naar Exitsub Else Application.EnableEvents = False Newvalue = Target. Waarde Application.Undo Oldvalue = Target.Value If Oldvalue = "" Dan Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Anders: Target.Value = Oude waarde End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub

Nu moet je deze code in een module in VB Editor plaatsen (zoals getoond in het volgende gedeelte van deze tutorial).

Met deze code kunt u meerdere items selecteren in de vervolgkeuzelijst. U kunt een item echter maar één keer selecteren. Als u het opnieuw probeert te selecteren, gebeurt er niets (zoals hieronder weergegeven).

Probeer het zelf… Download het voorbeeldbestand

Waar de VBA-code te plaatsen

Voordat u deze code in Excel gaat gebruiken, moet u deze in de back-end plaatsen, zodat deze wordt geactiveerd wanneer er een wijziging is in de vervolgkeuzelijst.

Volg de onderstaande stappen om de VBA-code in de backend van Excel te plaatsen:

  1. Ga naar het tabblad Ontwikkelaars en klik op Visual Basic (u kunt ook de sneltoets gebruiken - Alt + F11). Hiermee wordt de Visual Basic-editor geopend.
  2. Er zou een deelvenster Projectverkenner aan de linkerkant moeten zijn (als het er niet is, gebruik dan Control + R om het zichtbaar te maken).
  3. Dubbelklik op Werkbladnaam (in het linkerdeelvenster) waar de vervolgkeuzelijst zich bevindt. Dit opent het codevenster voor dat werkblad.
  4. Kopieer en plak de bovenstaande code in het codevenster.
  5. Sluit de VB-editor.

Wanneer u nu teruggaat naar de vervolgkeuzelijst en selecties maakt, kunt u meerdere selecties maken (zoals hieronder weergegeven):

Probeer het zelf… Download het voorbeeldbestand

Opmerking: Omdat we een VBA-code gebruiken om dit voor elkaar te krijgen, moet u de werkmap opslaan met de extensie .xls of .xlsm.

Veelgestelde vragen (FAQ's)

Ik heb deze sectie gemaakt om enkele van de meest gestelde vragen over deze tutorial en de VBA-code te beantwoorden. Als u vragen heeft, verzoek ik u eerst deze lijst met vragen door te nemen.

Vraag: In de VBA-code is de functionaliteit alleen voor cel C2. Hoe krijg ik het voor andere cellen? Ans: Om deze vervolgkeuzelijst met meervoudige selectie in andere cellen te krijgen, moet u de VBA-code in de backend wijzigen. Stel dat je dit wilt krijgen voor C2, C3 en C4, dan moet je de volgende regel in de code vervangen: If Target.Address = "$C$2" Dan met deze regel: If Target.Address = "$C$2" Of Target.Address = "$C$3" Of Target.Address = "$C$4" Dan
V: Ik moet meerdere vervolgkeuzelijsten maken in de hele kolom 'C'. Hoe krijg ik dit voor alle cellen in de kolommen met multi-select functionaliteit? Ans: Om meerdere selecties in vervolgkeuzelijsten in een hele kolom mogelijk te maken, vervangt u de volgende regel in de code: If Target.Address = "$C$2" Then met deze regel: If Target.Column = 3 Then Op vergelijkbare regels, als u wilt deze functionaliteit in kolom C en D, gebruik dan de onderstaande regel: If Target.Column = 3 or Target.Column = 4 Dan
V: Ik moet meerdere vervolgkeuzelijsten achter elkaar maken. Hoe kan ik dit doen? Ans: Als u vervolgkeuzelijsten moet maken met meerdere selecties op een rij (laten we zeggen de tweede rij), moet u de onderstaande regel code vervangen: If Target.Address = "$C$2" Dan met deze regel: Als Target.Row = 2 Then Evenzo, als u wilt dat dit voor meerdere rijen werkt (laten we zeggen de tweede en derde rij), gebruikt u in plaats daarvan de onderstaande regel code: If Target.Row = 2 of Target.Row = 3 Then
V: Vanaf nu worden de meerdere selecties gescheiden door een komma. Hoe kan ik dit veranderen om deze te scheiden met spatie (of een ander scheidingsteken). Ans: Om deze te scheiden met een ander scheidingsteken dan een komma, moet u de volgende regel VBA-code vervangen: Target.Value = Oldvalue & ", " & Newvalue door deze regel VBA-code: Target.Value = Oldvalue & " " & Nieuwe waarde Op dezelfde manier kunt u, als u een komma wilt wijzigen met een ander teken, zoals |, de volgende regel code gebruiken: Target.Value = Oldvalue & "| " & Newvalue
V: Kan ik elke selectie op een aparte regel in dezelfde cel krijgen? Antwoord: Ja dat kan. Om dit te krijgen, moet u de onderstaande regel VBA-code vervangen: Target.Value = Oldvalue & ", " & Newvalue door deze regel code: Target.Value = Oldvalue & vbNewLine & Newvalue vbNewLine voegt een nieuwe regel in dezelfde cel in . Dus wanneer u een selectie maakt uit de vervolgkeuzelijst, wordt deze in een nieuwe regel ingevoegd.
V: Kan ik de meerkeuzefunctie in een beveiligd blad laten werken? Antwoord: Ja dat kan. Om dit voor elkaar te krijgen, moet je twee dingen doen: Voeg de volgende regel toe aan de code (direct na de DIM-instructie): Me.Protect UserInterfaceOnly:=True Ten tweede moet u ervoor zorgen dat de cellen - die de vervolgkeuzelijst met meervoudige selectiefunctionaliteit hebben - niet vergrendeld zijn wanneer u het hele blad beveiligt. Hier is een tutorial over hoe je dit kunt doen: Cellen vergrendelen in Excel 
wave wave wave wave wave