Wie lässt sich in Excel nur ein Kontrollkästchen in einer Gruppe auswählen?
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.
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:
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.
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:
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.
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:
- Wie filtert man Daten basierend auf einem Kontrollkästchen in Excel?
- Wie blendet man ein Kontrollkästchen aus, wenn die 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 man ein Kontrollkästchen in Excel markiert hat?
Beste Büroproduktivitätswerkzeuge
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!