Wie kann man in Excel sicherstellen, dass in einer Gruppe nur ein Kontrollkästchen gleichzeitig ausgewählt werden kann?
In einigen Excel-Anwendungen müssen Benutzer möglicherweise nur eine Option aus einer Gruppe von Kontrollkästchen auswählen – analog zum Verhalten von Optionsfeld. Wie im folgenden Screenshot gezeigt, werden beim Aktivieren eines Kontrollkästchens in Zeile 2 alle anderen Kontrollkästchen der Gruppe sofort deaktiviert, sodass stets nur eine Auswahl möglich ist. Diese Einschränkung ist nützlich bei Umfrageformularen, Einzelauswahl-Listen oder Dashboards, bei denen Mehrfachantworten vermieden werden sollen. Um diese Funktionalität direkt in Excel zu realisieren, sind spezielle Techniken erforderlich, beispielsweise die Verwendung von VBA-Code. Dieser Artikel bietet praktische Lösungen, um mit Kontrollkästchen in Excel einen „Einzel-Auswahl“-Effekt zu erzielen, einschließlich schrittweiser Anleitungen und wichtiger Hinweise für den praktischen Einsatz.

Nur ein Kontrollkästchen mit VBA-Code auswählbar machen
Sie können den folgenden VBA-Ansatz nutzen, um sicherzustellen, dass stets nur ein Kontrollkästchen pro Gruppe ausgewählt werden kann – eine ideale Lösung für komplexe Vorlagen oder Szenarien, in denen eine nahtlose, automatische Benutzererfahrung sowie eine präzise Aktivierungs- und Deaktivierungslogik entscheidend sind.
1. Fügen Sie zunächst die Kontrollkästchen dort ein, wo eine Einzelauswahl erzwungen werden soll. Für diese Lösung müssen Sie ActiveX-Steuerelement-Kontrollkästchen verwenden, da Formularsteuerelement-Kontrollkästchen den Mechanismus zum Aktivieren/Deaktivieren nicht direkt unterstützen. Um ActiveX-Kontrollkästchen einzufügen, wechseln Sie zur Entwickler-Registerkarte > Einfügen > ActiveX-Steuerelemente > Kontrollkästchen. Ordnen Sie alle Kontrollkästchen innerhalb Ihrer gewünschten Gruppe wie unten gezeigt an:

2. Drücken Sie Alt+F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
3. Klicken Sie im Editorfenster auf Einfügen > Klassenmodul. Dieser Schritt erstellt ein neues Klassenmodul, das erforderlich ist, um Ereignisse mehrerer Kontrollkästchen zu verarbeiten. Mit einem Klassenmodul können Sie individuell auf das Anklicken jedes einzelnen Kontrollkästchens reagieren – ganz unabhängig davon, wie viele Kontrollkästchen vorhanden sind.

4. Suchen Sie das neue Klassenmodul im Bereich Eigenschaften (normalerweise links), klicken Sie darauf und ändern Sie den Namen im Feld Name vom Standardwert (z. B. Class1) in ClsChk. Kopieren Sie anschließend den folgenden Code in das Codefenster dieses Klassenmoduls. Siehe Referenz-Screenshot:

VBA-Code 1: Nur ein Kontrollkästchen gleichzeitig auswählbar
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 Standard-Code-Modul hinzuzufügen. Kopieren Sie den folgenden Code in das Modulfenster. Dieser Code initialisiert alle Ihre Kontrollkästchen und verknüpft sie mit dem oben definierten Ereignishandler:
VBA-Code 2: Nur ein Kontrollkästchen gleichzeitig auswählbar
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, wodurch die Einzelauswahl-Logik für Ihre Kontrollkästchengruppe aktiviert wird. Testen Sie das Verhalten, indem Sie eines der Kästchen aktivieren – alle anderen Kästchen sollten sofort deaktiviert und abgewählt werden. Wenn Sie Ihre aktuelle Auswahl deaktivieren, werden alle Kontrollkästchen wieder aktiviert, sodass Sie eine neue Auswahl treffen können.

Hinweis: Wenn Sie Kontrollkästchen zu Ihrer Gruppe hinzufügen oder daraus entfernen, müssen Sie die Initialisierungs-VBA erneut ausführen. Der Grund: Die Ereignishandler werden bei jeder Codeausführung aktualisiert, sodass Ihre VBA Änderungen an der Steuerelementgruppe korrekt erkennt.
Zu den Vorteilen dieser Methode gehört ihre vollständige Automatisierung – Benutzer können versehentlich keine Mehrfachauswahl treffen. Allerdings funktioniert sie ausschließlich mit ActiveX-Steuerelementen, deren Verfügbarkeit von der verwendeten Excel-Version abhängen kann, und setzt voraus, dass Makros aktiviert sind. Zudem kann die Weitergabe von Arbeitsmappen mit ActiveX-Steuerelementen oder Makros an andere Benutzer zusätzliche Sicherheitsberechtigungen erfordern.
Verwandte Artikel:
- Wie filtert man Daten in Excel basierend auf einem Kontrollkästchen?
- Wie blendet man ein Kontrollkästchen aus, sobald die zugehörige Zeile in Excel ausgeblendet wird?
- Wie hebt man in Excel eine Zelle oder Zeile mithilfe eines Kontrollkästchens hervor?
- Wie erstellt man in Excel eine Dropdown-Liste mit mehreren Kontrollkästchen?
- Wie fügt man einen Datumsstempel in eine Zelle ein, wenn ein Kontrollkästchen in Excel aktiviert wird?
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor.Kutools für Excel bietet über 300 erweiterte Funktionen zur Steigerung der Produktivität und Zeit sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am dringendsten benötigen...
Office Tab bringt eine tabbasierte Oberfläche in Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie tabbasiertes Bearbeiten und Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters – statt jedes in einem separaten Fenster zu öffnen.
- Steigert Ihre Produktivität um 50 % und erspart Ihnen täglich Hunderte von Mausklicks!
Alle Kutools-Add-Ins – ein Installationsprogramm
Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook und PowerPoint sowie Office Tab Pro – ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.
- Alles-in-einem-Paket— Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro
- Ein Installationsprogramm, eine Lizenz— innerhalb weniger Minuten eingerichtet (MSI-fähig)
- Funktioniert besser zusammen— optimierte Produktivität über alle Office-Anwendungen hinweg
- 30-tägige Vollversion zum Testen— keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis— sparen Sie im Vergleich zum Kauf einzelner Add-Ins