Kontrollkästchen mit VBA ansprechen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Kontrollkästchen mit VBA ansprechen
von: Astaldo
Geschrieben am: 21.09.2015 18:56:22

Hallo zusammen
Ich bin einmal mehr an die Grenzen meines Wissens gekommen. Folgendes Ausgangslage: Ich habe mehrere Kontrollkästchen, welche in einer Exceltabelle Reihen ein- und ausblenden. Dies Funktioniert auch tadellos. Nun möchte ich aber noch ein weiteres Kästchen machen, welches alle Kontrollkästchen (oder eine ausgewählte Menge davon) aktiviert, respektive deaktiviert. Leider kann ich keine Checkboxen verwenden (sind visuell nicht sichtbar genug) und muss es deshalb mit den Formularobjekten Kontrollkästchen machen.
Bei Befehlen wie:
Kontrollkästchen1.Value = True
erhalte ich Fehlermeldungen, dass die Methode nicht unterstützt wird. Genau so, wenn ich das Ganze um einen If-Then-Else-Befehl aufbaue. Gibt es hier eine Möglichkeit, dies umzusetzten, oder ist das bei Formularelementen garnicht erst möglich?
Vielen Dank für eure Hilfe schon im Voraus.
Astaldo

Bild

Betrifft: AW: Kontrollkästchen mit VBA ansprechen
von: Nepumuk
Geschrieben am: 21.09.2015 19:02:30
Hallo,
so:

Worksheets("Tabelle1").Shapes("Check Box 1").ControlFormat.Value = 1

Gruß
Nepumuk

Bild

Betrifft: AW: Kontrollkästchen mit VBA ansprechen
von: Daniel
Geschrieben am: 21.09.2015 19:10:03
Hi
wenn du ein Formularsteuerelement per Makro ansprechen willst, dann so:

ActiveSheet.Shapes("Check Box 1").OLEFormat.Object.Value
bei Formularsteuerelementen bietet sich aber an, diese jeweils mit einer Ausgabezelle zu verknüpfen.
in dieser Zelle steht dann der Checkboxzustand mit WAHR oder FALSCH, du kannst aber auch durch eingabe in diese Zelle die Checkbox steueren.
für dein Vorhaben kannst du dann bei Klick auf die Checkbox auch einfach die entsprechenden Zellen verwenden ohne dass du dich um die Objekte kümmern musst.
das ist dann von der Programmierung her etwas einfacher, dafür musst du halt immer Checkbox und Zelle gemeinsam pflegen, wenn du irgendwelche Änderungen machst.
weiterer Vorteil ist, durch die Verknüpfung mit der Zelle wird der Checkboxzustand mit gespeichert und die Checkbox hat beim nächsten Öffnen nicht den automatischen Startwert, sonden den wert, den sie beim Speichern hatte.
Damit passt dann der Checkboxwert automatisch immer zum Ein/Ausblendezustand der Spalten, ohne dass du das beim Öffnen der Datei abgleichen musst.
Gruß Daniel

Bild

Betrifft: AW: Kontrollkästchen mit VBA ansprechen
von: Astaldo
Geschrieben am: 22.09.2015 16:27:45
Hallo Daniel
Der Ansatz gefällt mir sehr gut. Teilweise konnte ich ihn auch für die Lösung eines anderen Problems nutzen. Dafür schon mal vielen Dank. Leider aber hab ich nun noch folgende zwei Probleme: Das Kontrollkästchen "Alle Auswählen" funktioniert so leider noch nicht. Wenn ich es auf mehrere Zellen beziehe, ändert es nur den Wert der ersten Zelle (und somit das erste Einzelkontrollkästchen) nicht aber die folgenden Zellen und Kästchen. Mir gefällt diese Idee besser, da keine Makros benötigt werden. Falls es da eine Möglichkeit gibt, wäre ich sehr offen.
Jedoch hab ich unterdessen eine andere Version, alle Kästchen per Checkbox anzusprechen, gefunden. Also mit einem Makro. Hier ist aber das Problem, dass hinter den Kontrollkästchen auch Makros liegen. Diese werden ordnungsgemäss ausgeführt, wenn ich das Kästchen einzeln auswähle. Nicht aber, wenn ich alle Kästchen mit dem Makro auf True setzte. Dann wird der Vorgang hinter dem Kästchen nicht ausgeführt.
Ich hoffe, dies war einigermassen verständlich ausgedrückt. Andernfalls einfach nachfragen.
Freundliche Grüsse
Astaldo

Bild

Betrifft: AW: Kontrollkästchen mit VBA ansprechen
von: Daniel
Geschrieben am: 22.09.2015 16:43:55
HI
das Kontrollkästchen "alle auswählen" ist ein Kontrollkästchen wie alle anderen auch und hat EINE Ausgabezelle.
wenn bei "alle auswählen" auch die Häkchen entpsrechend gesetzt werden sollen, dann geht's nicht ohne Makro, weil du ja dann in alle Zellen eben das WAHR schreiben musst.
wenn du auf das setzen der einzelhaken verzichten kannst, dann geht's auch ohne Makro, in dem du die Prüfung dann nach diesem Schema ausüfhrst: ODER(einzelhaken gesetzt; gesamthaken gesetzt)
bei Formularsteuerelementen wird das zugewiesene Makro nur ausgeführt, wenn du mit der Maus draufklickst, sonst nicht.
dh du musst dass dann das Makro für den Gesamt-Haken entsprechend programmieren, so dass dieses dann auch die Aktionen für die Einzelhaken ausführt.
ansonsten müsstest du dann doch auf ActiveX-Steuerelemente ausweichen, die sind für eine Makroprogrammierung besser geeignet.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Kontrollkästchen mit VBA ansprechen"