Skip to main content

Kutools voor Office — Eén Suite. Vijf Tools. Verwezenlijkt Meer.

Hoe kunt u ervoor zorgen dat slechts één selectievakje in een groep geselecteerd kan worden in Excel?

Author Siluvia Last modified

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.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


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:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

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.

A screenshot showing the option to insert a Class Module in Excel VBA

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:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

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.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

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:

Beste productiviteitstools voor Office

🤖 Kutools AI Assistent: Transformeer data-analyse door: Intelligente uitvoering |Code genereren |Aangepaste formules maken |Gegevens analyseren en grafieken genereren |Kutools functies aanroepen
Populaire functies: Dubbele waarden markeren | Verwijder lege rijen | Kolommen of cellen samenvoegen zonder gegevensverlies |   Afronden zonder formule...
Super ZOEKEN: Meervoudig-criteria opzoeken | Meervoudige waarde opzoeken | Meervoudig-blad opzoeken | Fuzzy Match....
Geavanceerde keuzelijst: Keuzelijst snel maken | Afhankelijke keuzelijst | Meervoudige selectie in keuzelijst....
Kolombeheer: Specifiek aantal kolommen toevoegen | Kolommen verplaatsen | Zichtbaarheidsstatus van verborgen kolommen wisselen | Bereik & kolommen vergelijken...
Uitgelichte functies: Rasterfocus | Ontwerpweergave | Verbeterde formulebalk | Werkboek- & Werkbladbeheer | AutoTekstbibliotheek | Datumkiezer | Gegevens samenvoegen | Cellen coderen/decoderen | E-mail verzenden via lijst | Superfilter | Speciaal filter (filter cellen met vetgedrukt/cursief/doorhalen...)...
Top15 gereedschapssets:12 teksttools (Tekst toevoegen, Specifieke tekens verwijderen, ...) | 50+ grafiek typen (Gantt-diagram, ...) | 40+ praktische formules (Leeftijd berekenen op basis van geboortedatum, ...) | 19 invoegtools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...) | 12 conversietools (Omzetten naar woorden, Valutaconversie, ...) | 7 Samenvoeg- & splitsgereedschappen (Geavanceerd samenvoegen van rijen, Cellen splitsen, ...) | ... en meer
Gebruik Kutools in je voorkeurstaal – ondersteunt Engels, Spaans, Duits, Frans, Chinees en meer dan40 andere talen!

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.

Excel Word Outlook Tabs PowerPoint
  • 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