Hoe maak je meerdere selecties in een keuzelijst in Excel (3 manieren) - Hoe maak je meerdere selecties?

  • Deel Dit
Hugh West

Afhankelijk van de omstandigheden moet u mogelijk meerdere waarden selecteren binnen een vervolgkeuzelijst. In deze tutorial gaan we u laten zien hoe u meerdere selecties kunt maken in een vervolgkeuzelijst. Voor deze sessie gebruiken we Excel 2019, voel u vrij om uw voorkeursversie te gebruiken.

Laten we, voordat we in de sessie duiken, eerst kennismaken met de dataset die de basis vormt van onze voorbeelden.

Hier hebben we verschillende stationery-elementen, daarmee maken we een keuzelijst en selecteren daar meerdere items.

Merk op dat het een eenvoudige dataset is om de zaken eenvoudig te houden. In een praktijkscenario kunt u een veel grotere en complexe dataset tegenkomen.

Praktijk Werkboek

U kunt het oefenwerkboek downloaden via onderstaande link.

Meervoudige selectie maken uit keuzelijst.xlsm

Meervoudige selectie in een keuzelijst

Allereerst moeten we een vervolgkeuzelijst maken op basis van onze stationery's. Laten we die snel maken. Aarzel niet om het artikel over het maken van een vervolgkeuzelijst te bezoeken.

In de Validatie van gegevens dialoogvenster selecteert u de LIJST gegevenstype en voeg het celbereik van de items in.

B4:B11 is het bereik dat de stationery elementen bevat. Nu vindt u de keuzelijst.

Lees meer: Excel vervolgkeuzelijst afhankelijk van selectie

1. Meerdere items selecteren (Meerdere selecties mogelijk)

Een conventionele keuzelijst selecteert altijd een enkel item. Hier ziet u dat we hebben geselecteerd Pen uit de lijst (afbeelding hieronder).

Als we nu een ander item selecteren, laten we zeggen Potlood

dan wordt de vorige waarde vervangen. Alleen Potlood blijft geselecteerd.

Om meerdere items te selecteren, moeten we de VBA code. Open de Microsoft Visual Basic voor toepassingen venster (druk op ALT + F11 om het te openen).

Dubbelklik nu op de werkbladnaam of het nummer waar u meerdere items in de keuzelijst wilt selecteren. U vindt dan het codevenster voor dat specifieke blad.

Hier is het codevenster voor Sheet2 in onze werkmap (we hebben de keuzelijst in dit blad).

Zodra het codevenster is geopend, voegt u daar de volgende code in

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.UndoOldvalue = Target.Value Als Oldvalue = "" Dan Target.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Sla de code op, en probeer nu waarden te selecteren in de keuzelijst.

Na selectie van Potlood gaan we een ander item selecteren Notebook En je ziet, we vonden beide items (afbeelding hieronder).

Met deze code kunnen we de selectie herhalen. Laten we zeggen dat als we selecteren Potlood weer,

vinden we het item terug in het keuzevak.

Code Uitleg

We hebben twee strings gedeclareerd Oldvalue en Nieuwwaarde .

U ziet dat we de keuzelijst in de D4 cel, daarom is ons doeladres D4 En bovendien hebben we opnieuw gecontroleerd of de cel gegevensvalidatie gebruikt of niet met behulp van Target.SpecialCells .

Zodra een waarde is geselecteerd, hebben we gebeurtenissen ( Application.EnableEvents = False ) zodat veranderingen de gebeurtenis niet opnieuw triggeren. Dan opgeslagen het geselecteerde item in de Nieuwwaarde .

Na het ongedaan maken van de wijziging hebben we de waarde in de Oldvalue Controleer dan of de Oldvalue leeg is of niet. Indien leeg (betekent dat slechts één waarde is geselecteerd), dan retourneert de Nieuwwaarde Anders worden de Oldvalue en Nieuwwaarde .

Alvorens de gebeurtenis te beëindigen, zodat wij deze desgewenst kunnen wijzigen.

Lees meer: Meervoudige afhankelijke vervolgkeuzelijst Excel VBA

2. Selecteer meerdere items uit de vervolgkeuzelijst (alleen unieke selectie)

In de eerdere sectie hebben we de meervoudige selecties gezien waarbij herhaling was toegestaan. Als u dat niet wilt, volg dan deze sectie.

Voor het gemak hebben we voor deze demonstratie een apart blad gebruikt. Deze keer zijn we bij blad3. Schrijf de volgende code in het codevenster voor dit blad.

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub. 

Is er enig verschil met de eerdere code! Kijk nog eens goed, dan kun je het kleine verschil zien.

Hier hebben wij een VBA functie genaamd INSTR . de INSTR functie geeft de positie van het eerste voorkomen van een substring in een string. Bezoek dit INSTR-artikel voor meer informatie.

Met deze logische bewerking met InStr(1, Oldvalue, Newvalue) = 0, hebben we gecontroleerd of de waarden zijn gevonden of niet. Als de logische bewerking het volgende oplevert WARE (niet eerder gevonden) dan kan het item worden geselecteerd en aaneengeschakeld met de eerdere waarde.

Sla de code op en probeer nu een item te selecteren dat al geselecteerd is.

Hier hebben we al geselecteerd Potlood Als we dat opnieuw willen selecteren, kan dat niet. Dubbele waarden zijn niet toegestaan.

Lees meer: Een vervolgkeuzelijst maken vanuit een ander blad in Excel

3. Items selecteren in Newline

Tot nu toe zijn de items gescheiden door een komma. In dit deel zullen we de geselecteerde items in newlines ordenen.

Voor de eenvoud voegen we een paar cellen samen met de D4 Selecteer daartoe de cellen die u wilt samenvoegen en klik op Merge & Center van de Uitlijning sectie van de Home tab.

De cel zal meer hoogte winnen.

Laten we nu eens kijken naar de code voor het scheiden van items door middel van newline. Gebruik de volgende code

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & vbNewLine & Newvalue Else: Target.Value = Oldvalue End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub. 

Het enige verschil met de vorige code is dat we deze keer gebruik maken van vbNewLine tussendoor OldValue en NewValue .

vbNewLine zorgt voor een nieuwe lijn tussen de items.

Selecteer nu de items.

We kiezen een item Pen die in de afbeelding hierboven staat. Selecteer nu een ander element.

U zult zien dat de twee artikelen in verschillende lijnen staan.

Hier hebben we twee waarden, die op twee verschillende regels staan. Het selecteren van een andere waarde zal die toevoegen aan een andere regel. Elke waarde komt op een nieuwe regel te staan.

Merk op dat als u een ander scheidingsteken wilt om de items te scheiden, u dat tussen dubbele aanhalingstekens gebruikt in plaats van vbNewline .

Conclusie

Dat is alles voor vandaag. We hebben verschillende manieren opgesomd om meerdere selecties te maken in een vervolgkeuzelijst. Hopelijk vindt u dit nuttig. Voel u vrij om commentaar te geven als iets moeilijk te begrijpen lijkt. Laat ons weten welke andere methoden we hier gemist hebben.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.