Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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 :)
Antworten 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
Antworten Top
#3
hi Steffl. Ich möchte aber das Häkchen wegmachen aus der Checkbox bzw. den Checkboxen.
Antworten 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)
Antworten 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
Antworten 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!
Antworten 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
Antworten 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
Antworten Top
#9
(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.
Antworten 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
Antworten Top


Gehe zu:


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