Wie lässt man nur ein Kontrollkästchen in einer Gruppe in Excel auswählen?
In einigen Excel-Anwendungen müssen Sie möglicherweise Benutzern erlauben, nur eine Option aus einer Gruppe von Kontrollkästchen auszuwählen – was das Verhalten von Optionsfeldern nachahmt. Zum Beispiel zeigt der folgende Screenshot, dass beim Aktivieren eines Kontrollkästchens in Zeile 2 alle anderen Kontrollkästchen in der Gruppe sofort deaktiviert werden, wodurch sichergestellt wird, dass immer nur eine Auswahl möglich ist. Diese Einschränkung ist nützlich bei Umfrageformularen, Single-Choice-Auswahllisten oder Dashboards, wo mehrere Antworten verhindert werden sollen. Die direkte Implementierung dieser Funktionalität in Excel erfordert spezielle Techniken, wie die Verwendung von VBA-Code. Dieser Artikel bietet praktische Lösungen zur Erreichung des „Single-Selection“-Effekts mit Kontrollkästchen in Excel, einschließlich Schritt-für-Schritt-Anleitungen und wichtige Überlegungen für den realen Gebrauch.
Nur ein Kontrollkästchen mit VBA-Code auswählbar machen
Sie können den folgenden VBA-Ansatz verwenden, um sicherzustellen, dass nur ein Kontrollkästchen in einer Gruppe gleichzeitig ausgewählt werden kann. Diese Lösung ist besonders geeignet, wenn Sie eine nahtlose, automatische Erfahrung benötigen – ideal für komplexe Vorlagen oder wenn die Steuerung der Aktivierungs-/Deaktivierungslogik wichtig ist.
1. Beginnen Sie damit, die Kontrollkästchen dort einzufügen, wo eine Einzelauswahl erzwungen werden soll. Für diese Lösung müssen Sie ActiveX Control-Kontrollkästchen verwenden, da Formularsteuerelemente-Kontrollkästchen das direkte Aktivieren/Deaktivieren nicht unterstützen. Um ActiveX-Kontrollkästchen einzufügen, gehen Sie zu Entwicklertools > Einfügen > ActiveX-Steuerelemente > Kontrollkästchen. Ordnen Sie alle Kontrollkästchen in Ihrer gewünschten Gruppe an, wie unten gezeigt:
2. Drücken Sie Alt + F11 zusammen, um das Microsoft Visual Basic for Applications-Fenster zu öffnen.
3. Klicken Sie im Editorfenster auf Einfügen > Klassenmodul. Dieser Schritt erstellt ein neues Klassenmodul, das für die Behandlung von Ereignissen für mehrere Kontrollkästchen erforderlich ist. Mit einem Klassenmodul ist es möglich, auf jedes angeklickte Kontrollkästchen individuell zu reagieren, unabhängig davon, wie viele Kontrollkästchen vorhanden sind.
4. Finden Sie das neue Klassenmodul im Eigenschaftenbereich (normalerweise links), klicken Sie darauf, und ändern Sie im Feld (Name) den Standardnamen (z.B. Class1) in ClsChk. Kopieren Sie dann den folgenden Code und fügen Sie ihn in das Codewindow dieses Klassenmoduls ein. Siehe Screenshot als Referenz:
VBA-Code1: Nur ein Kontrollkästchen gleichzeitig auswählen
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. Klicken Sie als Nächstes auf Einfügen > Modul, um ein Standardcodemodul hinzuzufügen. Kopieren Sie den folgenden Code und fügen Sie ihn in das Modulfenster ein. Dieser Code initialisiert und „verknüpft“ alle Ihre Kontrollkästchen mit dem oben definierten Ereignishandler:
VBA-Code2: Nur ein Kontrollkästchen gleichzeitig auswählen
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. Drücken Sie F5, um den Code auszuführen, der die Einzelauswahllogik für Ihre Kontrollkästchengruppe aktiviert. Testen Sie das Verhalten, indem Sie eines der Kontrollkästchen aktivieren; alle anderen Kontrollkästchen sollten sofort deaktiviert und gesperrt werden. Wenn Sie Ihre aktuelle Auswahl deaktivieren, werden alle Kontrollkästchen wieder aktiviert, sodass Sie eine andere Auswahl treffen können.
Hinweis: Wenn Sie der Gruppe Kontrollkästchen hinzufügen oder löschen, müssen Sie die Initialisierung des VBA-Codes erneut ausführen. Dies liegt daran, dass die Ereignishandler jedes Mal aktualisiert werden, wenn der Code ausgeführt wird, um sicherzustellen, dass Änderungen an der Steuergruppe ordnungsgemäß vom VBA erkannt werden.
Die Vorteile dieser Methode liegen in ihrer vollständigen Automatisierung – Benutzer können versehentlich keine mehrfachen Optionen auswählen. Es funktioniert jedoch nur mit ActiveX-Steuerelementen, die möglicherweise durch die Excel-Version begrenzt sind, und Makros müssen aktiviert sein. Außerdem erfordert die Verteilung von Arbeitsmappen mit ActiveX-Steuerelementen oder Makros an andere Benutzer ggf. zusätzliche Sicherheitsberechtigungen.
Verwandte Artikel:
- Wie filtert man Daten basierend auf einem Kontrollkästchen in Excel?
- Wie blendet man ein Kontrollkästchen aus, wenn eine Zeile in Excel ausgeblendet ist?
- Wie hebt man eine Zelle oder Zeile mit einem Kontrollkästchen in Excel hervor?
- Wie erstellt man eine Dropdown-Liste mit mehreren Kontrollkästchen in Excel?
- Wie fügt man einen Datumsstempel in eine Zelle ein, wenn ein Kontrollkästchen in Excel markiert ist?
Die besten Produktivitätstools für das Büro
Stärken Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und genießen Sie Effizienz wie nie zuvor. Kutools für Excel bietet mehr als300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt die Tab-Oberfläche in Office und macht Ihre Arbeit wesentlich einfacher
- Aktivieren Sie die Tabulator-Bearbeitung und das Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Tabs innerhalb desselben Fensters, statt in neuen Einzelfenstern.
- Steigert Ihre Produktivität um50 % und reduziert hunderte Mausklicks täglich!
Alle Kutools-Add-Ins. Ein Installationspaket
Das Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro und ist ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.





- All-in-One-Paket — Add-Ins für Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Ein Installationspaket, eine Lizenz — in wenigen Minuten einsatzbereit (MSI-kompatibel)
- Besser gemeinsam — optimierte Produktivität in allen Office-Anwendungen
- 30 Tage kostenlos testen — keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis — günstiger als Einzelkauf der Add-Ins