Excel 2007: Wie kann ich mit einem Makro die Checkbox eines anderen Sheets ansprechen?

2 Antworten

Das ist leider nicht so ganz mein "Fachgebiet" Du hast anscheinend das Kontrollkästchen aus den Formularsteuerelementen genommen.
Damit komme ich auf die Schnelle auch nicht weiter.
Aber wenn Du die Checkbox aus den Active-X-Steuerelementen nimmst, kannst Du die SO abfragen:

Sub machwas()
If Worksheets("Mitarbeiter").CheckBox1.Value Then
MsgBox "Häkchen gesetzt!"
Else
MsgBox "Häkchen nicht gesetzt!"
End If
End Sub

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

Oubyi, UserMod Light  16.01.2012, 18:36

So, nach etwas "Stöberei" in Foren-Archiven bin ich auch noch auf die Lösung für ein Formularsteruerelemenkontrollkästchen (tolles Wort) gekommen
(von alleine wäre ich DARAUF nieeee gekommen).
Das klappt so:

Sub machwas()
If Worksheets("Mitarbeiter").Shapes("Check Box 1").DrawingObject.Value = 1 Then
MsgBox "Häkchen gesetzt!"
Else
MsgBox "Häkchen nicht gesetzt!"
End If
End Sub

Wenn Du die Wahl hast, würde ich Dir aber empfehlen ein Active-X-Steuerelement zu verwenden, die sind imho besser zu handlen.

0
consiliumX 
Beitragsersteller
 17.01.2012, 10:38
@Oubyi, UserMod Light

Hey Oubyi

Vielen Dank für deine Hilfe. Ich konnte es nun mit deiner 2. Antwort lösen. Was ich dich aber noch fragen möchte: Was ist der Unterschied zwischen einem Active-X-Steuerelementkontrollkästchen und einem Formularsteuerelementkontrollkästchen (wirklich ein tolles Wort :D) ?

0
Oubyi, UserMod Light  17.01.2012, 17:06
@consiliumX

Einem Formularsteuerelement kannst Du ein Makros zuweisen, und viel mehr nicht.
Mit einem Active-X-Steuerelement kannst Du viel mehr "anstellen" (davon gibt es auch jede Menge).
Füge mal eine Active-X-Checkbox in Deine Tabelle ein und mache dann einen Doppelklick darauf.
Da bist Du sofort in dem Code zu diesem Element:

Private Sub CheckBox1_Click()

End Sub

und kannst eingeben was bei einem Click passieren soll.
Jetzt klappe mal das Fenster in dem VBA-Editor auf -oben rechts über dem Code- in dem gerade "Click" steht.
Da siehst Du jede Menge andere Ereignisse, für die Du Programme schreiben kannst. Z.B. wenn es den Focus (Got Focus) erhält, oder Du Doppelklickst(DblClick), oder etwas geändert wird (Change).
Bei der Checkbox wirst Du das kaum brauchen, aber bei einem Textfeld oder Listenfeld lässt sich ja einiges mit anstellen.

0

Die Verknüpfung kann auch noch ganz anders passieren: in Eigenschaften findest Du Linked Cell. Weise dem eine adresse zu.

Schreibst Du -per Makro oder manuell- in diese Zelle WAHR oder FALSCH rein, wird das Häkchen gesetzt oder enfernt!

Oder Du kannst den Status des Kästchens auslesen.

Ist vllt leichter zu merken als die recht speziellen Befehle zum -wie war das doch gleich: "Formularsteruerelemenkontrollkästchen" (solche Tippfehler passieren eben dann bei sowas).

Die Anglophilen verarschen die Deutschen gerne wegen ihrer zusammengesetzten Bandwurmwörter, ich nehme an, die haben das nur deshalb mit den deutschen Benennungen stehen lassen. (haben ja sonst auch alles auf aenglisch umgestellt)