Zum Hauptinhalt springen

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

Author: Siluvia Last Modified: 2025-05-28

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:

Beste Büroproduktivitätswerkzeuge

🤖 Kutools AI-Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung   |  Code generieren  |  Benutzerdefinierte Formeln erstellen  |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Finden, Hervorheben oder Doppelte markieren   |  Leere Zeilen löschen   |  Spalten oder Zellen kombinieren ohne Datenverlust   |   Runden ...
Erweiterte SVERWEIS: Mehrfachkriterien SVERWEIS    Mehrfachwert SVERWEIS  |   Mehrblatt-SVERWEIS   |   Fuzzy Match ....
Erweiterte Dropdown-Liste: Schnell Dropdown-Liste erstellen   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Eine bestimmte Anzahl von Spalten hinzufügen  |  Spalten verschieben  |  Sichtbarkeitsstatus ausgeblendeter Spalten umschalten  |  Bereiche & Spalten vergleichen ...
Hervorgehobene Funktionen: Gitterfokus   |  Entwurfsansicht   |   Erweiterte Formelleiste    Arbeitsmappe & Arbeitsblatt-Manager   |  AutoText-Bibliothek (Auto Text)   |  Datumsauswahl   |  Daten zusammenführen   |  Zellen verschlüsseln/entschlüsseln    E-Mail senden nach Liste   |  Spezialfilter   |   Spezialfilter (Filtern fett/kursiv/durchgestrichen...) ...
Top15 Werkzeugsets12 Textwerkzeuge (Text hinzufügen, Bestimmte Zeichen löschen, ...)   |   50+ Diagramm typen (Gantt-Diagramm, ...)   |   40+ Praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...)   |   19 Einfügewerkzeuge (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Konvertierungswerkzeuge (In Wörter umwandeln, Währungsumrechnung, ...)   |   7 Konsolidieren & Aufteilen Werkzeuge (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher

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