Checkbox per Makro deaktivieren
#1
Question 
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 :)
Top
#2
Hallo, Julia,

vielleicht irgendeine Zelle im aktiven Tabellenblatt selektieren oder noch besser: die Checkboxen gar nicht selektieren.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • o0Julia0o
Top
#3
hi Steffl. Ich möchte aber das Häkchen wegmachen aus der Checkbox bzw. den Checkboxen.
Top
#4
Hallöchen,
Setze den Value der Checkbox auf false.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
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.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • o0Julia0o
Top
#6
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!
Top
#7
Hallo Julia,

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


Code:
ActiveSheet.Shapes("Check Box " & i).ControlFormat.Value = xlOff
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
[-] Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:
  • o0Julia0o
Top
#8
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.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • o0Julia0o
Top
#9
(28.05.2017, 17: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.
Top
#10
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
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • o0Julia0o
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste