Skip to main content

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

Author: Siluvia Last Modified: 2025-05-29

Zoals in de onderstaande schermafbeelding te zien is, voor een groep selectievakjes die in rij 2 zijn weergegeven, wanneer u er één selecteert of aanvinkt, worden alle andere automatisch uitgeschakeld. Hoe bereikt u dit? De VBA-code in dit artikel kan u helpen.

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

Maak slechts één selectievakje selecteerbaar met VBA-code


Maak slechts één selectievakje selecteerbaar met VBA-code

U kunt de onderstaande VBA-codes uitvoeren om slechts één selectievakje tegelijk te selecteren in een groep selectievakjes. Volg hiervoor de volgende stappen.

1. Voeg eerst de selectievakjes in zoals u nodig hebt. Hier moet u de ActiveX Control-selectievakjes invoegen zoals in de volgende schermafbeelding te zien is:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Druk vervolgens gelijktijdig op Alt + F11 om het Microsoft Visual Basic for Applications-venster te openen.

3. Klik in het geopende Microsoft Visual Basic for Applications-venster op Invoegen > Class Module.

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

4. Wijzig de klassennaam naar ClsChk in het (Naam)-vak van het Eigenschappenpaneel en kopieer en plak vervolgens de onderstaande VBA-code in het bijbehorende Codevenster. Zie schermafbeelding:

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

VBA-code 1: Selecteer slechts één selectievakje tegelijk

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 nu op Invoegen > Module, kopieer en plak vervolgens de onderstaande VBA-code in het Modulevenster.

VBA-code 2: Selecteer slechts één selectievakje tegelijk

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 de F5-toets om de code uit te voeren.

Vanaf nu, wanneer u een van de selectievakjes in het werkblad aanvinkt, worden alle andere selectievakjes automatisch uitgeschakeld, en kunt u het deselecteren om alle selectievakjes opnieuw te activeren.

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

Opmerking: Als er een nieuw selectievakje wordt toegevoegd aan de groep selectievakjes, voer dan de VBA-code opnieuw uit om alle selectievakjes opnieuw te activeren. Het verwijderen van een selectievakje uit de groep vereist ook het opnieuw uitvoeren van de code.


Gerelateerde artikelen:

Beste Office-productiviteitstools

🤖 Kutools AI Assistent: Breng een revolutie teweeg in data-analyse Methode: Intelligente uitvoering |Code genereren |Aangepaste formules maken |Gegevens analyseren en grafieken genereren |Kutools-functies gebruiken
Populaire functies: Dubbele waarden markeren, markeren of identificeren | Verwijder lege rijen | Kolommen of cellen samenvoegen zonder gegevensverlies | Afronden ...
Super ZOEKEN: VLookup met meerdere criteria | VLookup met meerdere waarden | Meervoudig-blad opzoeken | Fuzzy Match ...
Geavanceerde keuzelijst: Snel keuzelijst maken | Afhankelijke keuzelijst | Meervoudige selectie keuzelijst ...
Kolombeheer: Specifiek aantal kolommen toevoegen | Kolommen verplaatsen | Zichtbaarheid 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 per lijst | Superfilter | Speciaal filter (filter cellen met vetgedrukt/cursief/doorhalen...) ...
Top15 toolsets:12 Teksttools (Tekst toevoegen, Specifieke tekens verwijderen, ...) |50+ Grafiek type (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- & Opsplitstools (Geavanceerd samenvoegen van rijen, Cellen splitsen, ...) | ... en meer

Versterk 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 krijgen die je het meest nodig hebt...


Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in
  • 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!