Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: CheckBox.Value = False setzen

CheckBox.Value = False setzen
12.01.2006 11:37:38
Lisa
Hallo,
ich füge in mein Tabellenblatt ein paar Checkboxen ein. Jetzt würde ich gerne das sie automatisch alle auch auf false gesetzt werden. Kann ich das auch in meine For-Schleife mit einbauen?
Hier mein Code:
For n = 5 To zei
If Cells(n, 5) "" Then
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=Cells(n, 2).Left, Top:=Cells(n, 2).Top, Width:=15, _
Height:=10.5).Select
End If
Next n
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CheckBox.Value = False setzen
12.01.2006 11:50:33
Dr.
Hi,
Checkboxen stehen beim Erstellen standardmässig auf false.
AW: CheckBox.Value = False setzen
12.01.2006 11:53:27
Lisa
Sorry, ich will sie natürlich auf true setzten!
AW: CheckBox.Value = False setzen
12.01.2006 12:01:00
Edwin
Hallo Lisa,
bei Eigenschaft der Checkbox einfach den Wert auf true setzen.
Gruß
Edwin
Anzeige
AW: CheckBox.Value = False setzen
12.01.2006 12:04:41
Lisa
Das kann ich ja, aber ich wollt es per Makro auf true setzen. Und wie das geht weiss ich leider nicht
AW: CheckBox.Value = False setzen
12.01.2006 12:27:27
Josef
Hallo Lisa!
Sub AddCheckBox()
Dim lngLastRow As Long, lngIndex As Long
Dim objOLE As Object

lngLastRow = Range("E65536").End(xlUp).Row

For lngIndex = 1 To lngLastRow
  If Cells(lngIndex, 5) <> "" Then
    Set objOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
      Left:=Cells(lngIndex, 2).Left, _
      Top:=Cells(lngIndex, 2).Top, _
      Width:=15, _
      Height:=10.5)
    objOLE.Object.Value = True
    Set objOLE = Nothing
  End If
Next

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: CheckBox.Value = False setzen
12.01.2006 13:16:54
Lisa
Das hat mir schon sehr weiter geholfen, aber wie bekomme ich hin das ich jetzt nacheinander Abfrage welche CheckBox angeklickt ist? Hab's damit versucht aber das funktioniert nicht:

Sub test()
Dim objOLE As Object
For Each objOLE In ActiveSheet.Shapes
If objOLE.Value = True Then MsgBox (objOLE.Name & "ist angeklickt worden!")
Next
End Sub

Anzeige
AW: CheckBox.Value = False setzen
12.01.2006 17:45:46
Josef
Hallo Lisa!
Das geht z.B. so!
Sub CheckBoxes()
Dim objOLE As Object

For Each objOLE In ActiveSheet.OLEObjects
  If TypeName(objOLE.Object) = "CheckBox" Then
    If objOLE.Object.Value Then
      MsgBox objOLE.Name
    End If
  End If
Next

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: CheckBox.Value = False setzen
13.01.2006 09:19:19
Lisa
Super! Genau das, was ich gebraucht habe! Vielen Dank Josef!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Checkboxen in Excel mit VBA steuern


Schritt-für-Schritt-Anleitung

Um Checkboxen in Excel mithilfe von VBA zu steuern, kannst Du folgende Schritte befolgen:

  1. Öffne die VBA-Entwicklungsumgebung:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeinWorkbookName) und wähle Einfügen > Modul.
  3. Füge folgenden Code ein:

    Sub AddCheckBox()
       Dim lngLastRow As Long
       Dim lngIndex As Long
       Dim objOLE As Object
    
       lngLastRow = Range("E65536").End(xlUp).Row
    
       For lngIndex = 1 To lngLastRow
           If Cells(lngIndex, 5) <> "" Then
               Set objOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
                   Left:=Cells(lngIndex, 2).Left, _
                   Top:=Cells(lngIndex, 2).Top, _
                   Width:=15, _
                   Height:=10.5)
               objOLE.Object.Value = True ' Setze Checkbox auf true
               Set objOLE = Nothing
           End If
       Next lngIndex
    End Sub
  4. Führe das Makro aus:

    • Gehe zurück zu Excel und führe das Makro AddCheckBox aus, um Checkboxen zu erstellen und sie auf true zu setzen.

Häufige Fehler und Lösungen

  • Checkbox bleibt auf false: Stelle sicher, dass Du den Wert der Checkbox im Code korrekt auf True setzt, wie im obigen Beispiel.

  • Fehlermeldung beim Ausführen des Makros: Überprüfe, ob Du die Checkboxen korrekt hinzugefügt hast. Manchmal kann es zu Problemen kommen, wenn die Zellen, auf die verwiesen wird, leer sind.


Alternative Methoden

Eine alternative Methode zur Verwaltung von Checkboxen ist die Verwendung von ActiveX-Steuerelementen. Hier kannst Du die Eigenschaften jeder Checkbox direkt im Eigenschaftenfenster anpassen und ein Makro zur Steuerung der Werte verwenden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um alle Checkboxen auf false zu setzen, wenn Du das Makro ausführst:

Sub SetAllCheckboxesFalse()
    Dim objOLE As Object
    For Each objOLE In ActiveSheet.OLEObjects
        If TypeName(objOLE.Object) = "CheckBox" Then
            objOLE.Object.Value = False ' Setze Checkbox auf false
        End If
    Next
End Sub

Tipps für Profis

  • Nutze With-Anweisungen, um den Code lesbarer und effizienter zu gestalten. Beispiel:

    With objOLE.Object
      .Value = True
      .Caption = "Meine Checkbox"
    End With
  • Verwende Schleifen, um den Status der Checkboxen zu überprüfen, und reagiere entsprechend. Zum Beispiel:

    For Each objOLE In ActiveSheet.OLEObjects
      If TypeName(objOLE.Object) = "CheckBox" And objOLE.Object.Value = True Then
          MsgBox objOLE.Name & " ist angeklickt worden!"
      End If
    Next

FAQ: Häufige Fragen

1. Wie kann ich den Wert einer Checkbox abfragen?
Du kannst den Wert einer Checkbox mit objOLE.Object.Value abfragen. Wenn der Wert True ist, ist die Checkbox aktiviert.

2. Was mache ich, wenn ich mehrere Checkboxen habe?
Du kannst eine Schleife verwenden, um durch alle Checkboxen zu iterieren und deren Werte zu überprüfen oder zu ändern.

3. Wie setze ich den Wert einer Checkbox in Excel VBA?
Verwende objOLE.Object.Value = True oder objOLE.Object.Value = False, um den Wert der Checkbox festzulegen.

4. Funktioniert das auch in Excel 365?
Ja, die oben genannten Methoden und Codes funktionieren in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige