Hoe kunt u ervoor zorgen dat slechts één selectievakje in een groep geselecteerd kan worden in Excel?
In sommige Excel-toepassingen moet u gebruikers mogelijk toestaan om slechts één optie te selecteren uit een groep selectievakjes — wat het gedrag van radioknoppen nabootst. Bijvoorbeeld, zoals te zien is in de onderstaande schermafbeelding, wanneer u één selectievakje in rij 2 aanvinkt, worden alle andere selectievakjes in de groep onmiddellijk uitgeschakeld, waardoor er op elk moment slechts één keuze mogelijk is. Deze beperking is handig in enquêteformulieren, lijsten met enkelvoudige antwoorden of dashboards waar u meervoudige antwoorden wilt voorkomen. Het realiseren van deze functionaliteit direct in Excel vereist specifieke technieken, zoals het gebruik van VBA-code. Dit artikel biedt praktische oplossingen om een 'éénkeuze'-effect met selectievakjes in Excel te bereiken, inclusief stap-voor-stap instructies en belangrijke overwegingen voor praktisch gebruik.
Zorg ervoor dat slechts één selectievakje kan worden geselecteerd met VBA-code
U kunt de volgende VBA-benadering gebruiken om ervoor te zorgen dat slechts één selectievakje tegelijk in een groep kan worden geselecteerd. Deze oplossing is vooral geschikt wanneer u een naadloze, automatische ervaring nodig hebt — ideaal voor complexe sjablonen of wanneer het beheer van inschakelen/uitschakelen-logica belangrijk is.
1. Begin met het invoegen van de selectievakjes waar u een enkelvoudige selectie wilt afdwingen. Voor deze oplossing moet u ActiveX Control selectievakjes gebruiken, omdat Form Controls selectievakjes het inschakelen/uitschakelen-mechanisme niet rechtstreeks ondersteunen. Om ActiveX selectievakjes in te voegen, gaat u naar het tabblad Ontwikkelaar > Invoegen > ActiveX Controls > Selectievakje. Rangschik alle selectievakjes binnen uw gewenste groep zoals hieronder weergegeven:
2. Druk gelijktijdig op Alt + F11 om het Microsoft Visual Basic for Applications-venster te openen.
3. Klik in het editorvenster op Invoegen > Klassenmodule. Deze stap maakt een nieuwe klassenmodule aan, die vereist is voor het afhandelen van gebeurtenissen voor meerdere selectievakjes. Met behulp van een klassenmodule is het mogelijk om individueel te reageren op elk aangeklikt selectievakje, ongeacht hoeveel selectievakjes er zijn.
4. Zoek de nieuwe klassenmodule in het Eigenschappenpaneel (meestal links), klik erop, en wijzig in het vak (Naam) de standaardwaarde (zoals Class1) in ClsChk. Kopieer en plak vervolgens de volgende code in het coderaam van deze klassenmodule. Zie schermafbeelding als referentie:
VBA-code1: 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. Deze code initialiseert en “koppelt” al uw selectievakjes aan de bovenstaand gedefinieerde gebeurtenis-handler:
VBA-code2: 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 logica voor enkelvoudige selectie voor uw selectievakgroep wordt geactiveerd. Test het gedrag door een van de selectievakjes aan te vinken; alle andere selectievakjes moeten onmiddellijk worden uitgevinkt en uitgeschakeld. Als u uw huidige selectie uitvinkt, worden alle selectievakjes opnieuw ingeschakeld, zodat u een andere selectie kunt maken.
Opmerking: Als u selectievakjes toevoegt of verwijdert uit uw groep, moet u de initialisatie-VBA opnieuw uitvoeren. Dit komt doordat de gebeurtenis-handlers elke keer dat de code wordt uitgevoerd worden vernieuwd, om ervoor te zorgen dat eventuele wijzigingen in de controlegroep correct worden herkend door uw VBA.
Voordelen van deze methode zijn de volledige automatisering — gebruikers kunnen per ongeluk geen meerdere opties selecteren. Echter, het werkt alleen met ActiveX-controls, wat mogelijk beperkt wordt door de versie van Excel, en macros moeten zijn ingeschakeld. Bovendien kan het distribueren van werkboeken met ActiveX-controls of macros aan andere gebruikers extra beveiligingsmachtigingen vereisen.
Gerelateerde artikelen:
- Hoe filtert u gegevens op basis van een selectievakje in Excel?
- Hoe verbergt u een selectievakje wanneer een rij verborgen is in Excel?
- Hoe markeert u een cel of rij met een selectievakje in Excel?
- Hoe maakt u een vervolgkeuzelijst met meerdere selectievakjes in Excel?
- Hoe voegt u een datumstempel in een cel in wanneer u een selectievakje aanvinkt in Excel?
Beste productiviteitstools voor Office
Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!
Alle Kutools-invoegtoepassingen. Eén installatieprogramma
Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.





- Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
- Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
- 30 dagen volledige proef — geen registratie, geen creditcard nodig
- Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen