Hoe schakelt u een ander selectievakje uit zodra een selectievakje in Excel wordt aangevinkt?
In veel praktijksituaties, zoals het beheren van een lange aankooplijst in Excel, komt u scenario’s tegen waarin u wilt garanderen dat binnen een specifieke categorie of groep slechts één optie geselecteerd kan worden. Als bepaalde categorieën bijvoorbeeld buiten het ingestelde budget vallen, moet u mogelijk items opnieuw selecteren zodat er per groep maar één item aangevinkt blijft. Het handmatig beheren van selectievakjes in grote lijsten is inefficiënt en foutgevoelig, vooral naarmate het aantal categorieën groeit. Om dit proces te stroomlijnen en fouten te verminderen, kunt u Excel zo instellen dat het aanvinken van een nieuw selectievakje binnen een groep automatisch het eerder geselecteerde vakje uitschakelt — zodat er altijd precies één selectie per categorie actief is. Dit artikel bevat een stapsgewijze handleiding om dit te realiseren, waardoor uw workflow efficiënter en betrouwbaarder wordt.
➤ Een ander selectievakje uitschakelen wanneer een nieuw selectievakje wordt aangevinkt met VBA-code
Een ander selectievakje uitschakelen wanneer een nieuw selectievakje wordt aangevinkt met VBA-code
Ter illustratie van het proces: denk aan een situatie zoals getoond in de video hierboven. U hebt tien selectievakjes met de labels CheckBox1 tot en met CheckBox10, verdeeld over drie groepen die verschillende aankoopcategorieën vertegenwoordigen.
✅ Groepsstructuur:
- Groep 1: CheckBox1, CheckBox2, CheckBox3
- Groep 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Groep 3: CheckBox8, CheckBox9, CheckBox10
Binnen elke groep mag slechts één selectievakje tegelijkertijd zijn geselecteerd. Wanneer een nieuw selectievakje wordt aangevinkt, worden de andere in dezelfde groep automatisch uitgeschakeld – vergelijkbaar met het gedrag van Keuzerondje, maar dan met selectievakjes.
🧩 Stappen om de VBA-oplossing toe te passen:
- Open de VBA-editor: Klik met de rechtermuisknop op het tabblad van het werkblad waarop de selectievakjes staan en kies vervolgens Code weergeven.
- Plak de volgende codein het codovenster van het werkblad:
- Sluit de VBA-editor (Alt + Q) en keer terug naar Excel om de selectievakjes te testen.
Dim xBol As Boolean
'Updated by Extendoffice
Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
Private Function SetCheckBoxes(mCheckBoxName As String)
Dim xAllArr, xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
"CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
"CheckBox8,CheckBox9,CheckBox10")
For xI = LBound(xAllArr) To UBound(xAllArr)
If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
xBol = False
xArrItem = Split(xAllArr(xI), ",")
For xJ = LBound(xArrItem) To UBound(xArrItem)
If xArrItem(xJ) <> mCheckBoxName Then
Me.OLEObjects(xArrItem(xJ)).Object.Value = False
End If
Next
End If
Next
xBol = True
End Function
Private Sub Worksheet_Activate(): xBol = True: End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub 📌 Belangrijke opmerkingen:
- Zorg ervoor dat de Naam-eigenschappen (niet de labels) van uw selectievakje exact overeenkomen met de namen in de code.
- Groeperingen worden gedefinieerd in de array-regel:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10") - Deze VBA werkt alleen met ActiveX-besturingselementen als selectievakjes, niet met formulierbesturingselementen.
- Macro’s moeten zijn ingeschakeld om deze automatisering te laten werken.
📺 Demo:
🔍 Tips voor probleemoplossing:
- Controleer of er geen dubbele namen voorkomen voor selectievakjes.
- Zorg ervoor dat alle selectievakjes van het ActiveX-besturingselement zijn ingeschakeld.
- Elke selectievakje-procedure moet correct
SetCheckBoxesaanroepen. - Scenario’s met meerdere werkbladen vereisen aanpassing via klassemodules of gecentraliseerde besturing.
💡 Alternatieve oplossing: U kunt keuzerondjes uit formulierbesturingselementen gebruiken voor ingebouwd gedrag met één selectie. Voor geavanceerdere lay-outs en logische besturing is VBA + selectievakjes echter flexibeler.
✨ Tip: Hulpmiddelen zoals Kutools voor Excel bieden een GUI-gebaseerd beheer van selectievakjes, zodat je ze eenvoudig kunt configureren zonder te hoeven coderen.
Demo: Een ander selectievakje uitschakelen wanneer een selectievakje wordt 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