Clever-Excel-Forum

Normale Version: Checkbox per Makro deaktivieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hi,

ich habe ein paar Checkboxen, welche ich per Makro deaktivieren möchte. Aber wie geht das?

So wähle ich die Checkbox an:

Code:
ActiveSheet.Shapes.Range(Array("Check Box 3124")).Select


So wähle ich mehrere Checkboxen an:

Code:
ActiveSheet.Shapes.Range(Array("Check Box 3127", "Check Box 3128")).Select


Aber wie deaktviere ich sie?

lieben Dank

Julia :)
Hallo, Julia,

vielleicht irgendeine Zelle im aktiven Tabellenblatt selektieren oder noch besser: die Checkboxen gar nicht selektieren.
hi Steffl. Ich möchte aber das Häkchen wegmachen aus der Checkbox bzw. den Checkboxen.
Hallöchen,
Setze den Value der Checkbox auf false.
Hallo

du hast Formularsteuerelemente, richtig?

Dann so z.B.:


Code:
Sub kontrolkästchen_abwählen()
Dim i As Long
For i = 3127 To 3128
ActiveSheet.Shapes("Check Box" & i).ControlFormat.Value = xlOff
Next i
End Sub


und


Code:
Sub kontrolkästchen_abwählen()
Dim i As Long
For i = 3127 To 3128
ActiveSheet.Shapes("Check Box" & i).ControlFormat.Value = xlOff
Next i
End Sub
Wenn keine Schleife möglich dann einzeln ansprechen.
die beiden Codeblöcke sind identisch von Dir, Atila.

Das wird gelb markiert, :
ActiveSheet.Shapes("Check Box" & i).ControlFormat.Value = xlOff


Aber einzeln klappt das wunderbar:
Sub kontrolkästchen_abwählen()
ActiveSheet.Shapes("Check Box 3127").ControlFormat.Value = xlOff
End Sub

Wobei die Schleife gar nicht so übel gewesen wäre, sind nämlich einige Checkboxen...

Danke!
Hallo Julia,

da fehlt in Atillas-Code offentsichtlich nur ein Leerzeichen bei den Checkboxes:


Code:
ActiveSheet.Shapes("Check Box " & i).ControlFormat.Value = xlOff
Hallo Julia,

ja, Günter hat recht, da könnte ein Leerzeichen fehlen.
War mir zwar gestern nach dem Abschicken auch aufgefallen, aber ich ging davon aus, das Du so etwas mitlerweile selber erkennst und korrigierst.

Und ja die Codes sind identisch, sollten sich nur mit xlOff und xlOn am Ende unterscheiden.
Du brauchst aber wahrscheinlich sowieso nur das xlOff, weil Du wahrscheinlich ein Formular wieder im Urzustand haben möchtest.

Wenn das mit der For Next Schleife nicht geht, dann ginge es auch mit einer For Each Schleife.
(28.05.2017, 16:52)Glausius schrieb: [ -> ]Hallo Julia,

da fehlt in Atillas-Code offentsichtlich nur ein Leerzeichen bei den Checkboxes:


Code:
ActiveSheet.Shapes("Check Box " & i).ControlFormat.Value = xlOff

DAnke. Aber auch so funktioniert es leider nicht.
Hallo Julia,

dann mach et so:


Code:
Sub kontrolkästchen_abwählen()
 Dim i As Integer
 With ActiveSheet
     For i = 1 To .CheckBoxes.Count
         If .CheckBoxes(i) = 1 Then .CheckBoxes(i) = xlOff
     Next
 End With
End Sub
In diesem Fall geht es auch mit Value:

Code:
Sub kontrolkästchen_abwählen()
  Dim i As Integer
  With ActiveSheet
      For i = 1 To .CheckBoxes.Count
          If .CheckBoxes(i) = 1 Then .CheckBoxes(i).Value = False
      Next
  End With
End Sub
Seiten: 1 2