Hoe zorgt u ervoor dat in Excel slechts één selectievakje tegelijkertijd kan worden geselecteerd binnen een groep?
In sommige Excel-toepassingen wilt u gebruikers beperken tot het kiezen van slechts één optie uit een groep selectievakjes—waardoor het gedrag van een keuzerondje wordt nagebootst. Zoals in de onderstaande schermafbeelding te zien is, worden alle andere selectievakjes in de groep onmiddellijk uitgeschakeld zodra u een selectievakje in rij 2 aanvinkt. Zo blijft er altijd maar één keuze mogelijk. Deze beperking is ideaal voor enquêtes, lijsten met één antwoord of dashboards waarbij meerdere selecties moeten worden voorkomen. Om dit effect rechtstreeks in Excel te realiseren, zijn specifieke technieken nodig, zoals het gebruik van VBA-code. Dit artikel biedt praktische oplossingen om het „één-keuze”-effect met selectievakjes in Excel te implementeren, inclusief stapsgewijze instructies en belangrijke overwegingen voor toepassing in de praktijk.

Zorg ervoor dat slechts één selectievakje kan worden aangevinkt met VBA-code
U kunt de volgende VBA-aanpak toepassen om te garanderen dat er in een groep slechts één selectievakje tegelijkertijd geselecteerd kan worden. Deze oplossing is bij uitstek geschikt voor situaties waarin u een naadloze, automatische ervaring nodig hebt—perfect voor complexe sjablonen of wanneer het beheren van inschakel-/uitschakellogica essentieel is.
1. Begin met het invoegen van de selectievakjes waar u één-keuze-gedrag wilt afdwingen. Voor deze oplossing moet u ActiveX-besturingselementen (checkboxes) gebruiken, omdat formulierbesturingselementen dit inschakel-/uitschakelmechanisme niet rechtstreeks ondersteunen. Ga naar het Ontwikkelaar-tabblad > Invoegen > ActiveX-besturingselementen > Selectievakje om ActiveX-selectievakjes in te voegen. Plaats alle selectievakjes binnen uw gewenste groep, zoals hieronder wordt weergegeven:

2. Druk tegelijkertijd op Alt+F11 om het venster Microsoft Visual Basic for Applications te openen.
3. Klik in het editorvenster op Invoegen > Klassemodule. Met deze stap maakt u een nieuwe klassemodule aan, die nodig is om gebeurtenissen voor meerdere selectievakjes af te handelen. Dankzij een klassemodule kunt u individueel reageren op elk aangeklikte selectievakje, ongeacht hoeveel selectievakjes er aanwezig zijn.

4. Zoek de nieuwe klassemodule in het deelvenster Eigenschappen(meestal links), klik erop en wijzig de naam in het vak ()Naam) van de standaardwaarde (zoals Class1) naar ClsChk. Kopieer en plak vervolgens de volgende code in het codevenster van deze klassemodule. Zie de schermafbeelding als referentie:

VBA-code 1: Slechts één selectievakje per keer selecteren
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. Klik vervolgens op Invoegen > Module om een standaard codemodule toe te voegen. Kopieer en plak de volgende code in het modulevenster. Met deze code worden al uw selectievakjes geïnitialiseerd en „gekoppeld” aan de eerder gedefinieerde gebeurtenis-handler:
VBA-code 2: Slechts één selectievakje per keer selecteren
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub 6. Druk op F5 om de code uit te voeren, waarmee de één-keuze-logica voor uw selectievakjegroep wordt geactiveerd. Test het gedrag door een van de vakjes aan te vinken; alle andere vakjes worden dan onmiddellijk uitgevinkt en uitgeschakeld. Wanneer u uw huidige selectie uitzet, worden alle selectievakjes weer ingeschakeld, zodat u een andere keuze kunt maken.

Opmerking: Als u selectievakjes aan uw groep toevoegt of verwijdert, moet u de initialisatie-VBA opnieuw uitvoeren. Dat komt omdat de gebeurtenis-handlers bij elke uitvoering van de code opnieuw worden ingesteld, zodat eventuele wijzigingen in de besturingselementengroep correct worden herkend door uw VBA.
Deze methode biedt volledige automatisering—gebruikers kunnen per ongeluk geen meerdere opties selecteren. Het werkt echter alleen met ActiveX-besturingselementen, wat beperkingen kan opleveren afhankelijk van de Excel-versie, en vereist dat macro’s zijn ingeschakeld. Daarnaast kan het delen van werkmappen met ActiveX-besturingselementen of macro’s extra beveiligingsmachtigingen vergen bij andere gebruikers.
Gerelateerde artikelen:
- Hoe filtert u gegevens in Excel op basis van een selectievakje?
- Hoe verbergt u een selectievakje automatisch wanneer de bijbehorende rij in Excel verborgen is?
- Hoe markeert u een cel of rij in Excel met een selectievakje?
- Hoe maakt u in Excel een keuzelijst met meerdere selectievakjes?
- Hoe plaatst u met Datum invoegen een stempel in een cel wanneer een selectievakje is aangevinkt 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