Zum Hauptinhalt springen

Wie lässt sich in Excel nur ein Kontrollkästchen in einer Gruppe auswählen?

Author: Siluvia Last Modified: 2025-08-06

Wie im folgenden Screenshot gezeigt, wird für eine Gruppe von Kontrollkästchen in Zeile 2, wenn Sie eines auswählen oder aktivieren, alle anderen automatisch deaktiviert. Wie kann man das erreichen? Der VBA-Code in diesem Artikel kann Ihnen helfen.

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

Nur ein Kontrollkästchen mit VBA-Code auswählbar machen


Nur ein Kontrollkästchen mit VBA-Code auswählbar machen

Sie können den folgenden VBA-Code ausführen, um jeweils nur ein Kontrollkästchen in einer Gruppe auszuwählen. Gehen Sie wie folgt vor.

1. Fügen Sie zunächst die benötigten Kontrollkästchen ein. Hier sollten Sie die ActiveX Control-Checkboxen wie im folgenden Screenshot gezeigt einfügen:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Drücken Sie dann gleichzeitig die Tasten Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.

3. Klicken Sie im geöffneten Fenster Microsoft Visual Basic for Applications auf Einfügen > Klassenmodul.

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

4. Ändern Sie den Klassennamen in ClsChk im Feld (Name) des Eigenschaftenfensters, und kopieren Sie dann den folgenden VBA-Code in das entsprechende Codefenster. Siehe Screenshot:

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

VBA-Code 1: Nur ein Kontrollkästchen pro Durchgang 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 nun auf Einfügen > Modul, und fügen Sie den folgenden VBA-Code in das Modulfenster ein.

VBA-Code 2: Nur ein Kontrollkästchen pro Durchgang 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 die Taste F5, um den Code auszuführen.

Ab jetzt werden beim Aktivieren eines beliebigen Kontrollkästchens im Arbeitsblatt alle anderen Kontrollkästchen automatisch deaktiviert, und Sie können es wieder deaktivieren, um alle Kontrollkästchen erneut zu aktivieren.

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

Hinweis: Wenn ein neues Kontrollkästchen zur Gruppe hinzugefügt wird, führen Sie den VBA-Code bitte erneut aus, um alle Kontrollkästchen wieder zu aktivieren. Auch das Löschen eines Kontrollkästchens aus der Gruppe erfordert das erneute Ausführen des Codes.


Verwandte Artikel:

Die besten Office-Produktivitätstools

🤖 Kutools AI Aide: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung |  Code generieren  |  Benutzerdefinierte Formeln erstellen |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Doppelte suchen, hervorheben oder markieren | Leere Zeilen löschen | Spalten oder Zellen ohne Datenverlust zusammenführen | Runden
Erweiterte SVERWEIS: SVERWEIS mit mehreren Kriterien | SVERWEIS für mehrere Werte | Mehrblatt-SVERWEIS | Fuzzy Match
Erweiterte Dropdown-Liste: Dropdown-Liste schnell erstellen | Abhängige Dropdown-Liste | Mehrfachauswahl-Dropdown-Liste
Spalten-Manager: Eine bestimmte Anzahl an Spalten hinzufügen | Spalten verschieben | Sichtbarkeit von ausgeblendeten Spalten umschalten | Bereiche & Spalten vergleichen
Hervorgehobene Funktionen: Gitterfokus | Entwurfsansicht | Erweiterte Formelleiste | Arbeitsmappen- & Blattmanager | AutoText-Bibliothek | Datumsauswahl | Daten zusammenführen | Zellen verschlüsseln/entschlüsseln | E-Mail senden nach Liste | Super Filter | Spezialfilter (Filtern nach Fett/Kursiv/Durchgestrichen...)…
Top15 Toolsets:12 Text-Tools (Text hinzufügen, Bestimmte Zeichen löschen, ...) | 50+ Diagramm typen (Gantt-Diagramm, ...) | 40+ praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...) | 19 Einfüge-Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...) | 12 Konvertierungs-Tools (In Wörter umwandeln, Währungsumrechnung, ...) | 7 Konsolidieren & Aufteilen-Tools (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...) | ... und mehr
Nutzen Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und über40 weitere Sprachen!

Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre 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 Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher

  • Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
  • Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!