Checkbox mit Variable ansprechen

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

Betrifft: Checkbox mit Variable ansprechen
von: Psy
Geschrieben am: 07.09.2015 14:12:42

Hallo zusammen,
habe eine Excel-Tabelle, in welcher 17 Checkboxen (ActiveX-Steuerelemente) enthalten sind.
Wenn ich eine Checkbox auswähle und darin einen Hacken setze, kommt eine MsgBox mit einer Abfrage, ob ein Diagramm in PowerPoint erstellt werden soll. Dies funktioniert auch.
Jetzt könnte ich dies für alle 17 Checkboxen schreiben.
Um mir unnötige Arbeit zu ersparen, kam ich auf die Idee, alle Checkboxen per Schleife _ anzusprechen.


Sub tt()
Dim i As Integer
For i = 1 To 17
'Checkbox per Variable ansprechen um eine Abfrage zu starten, ob ein Diagramm erstellt werden    _
_
_
soll
If Tabelle1.OLEObjects("CheckBox" & i).Object.Value = True Then
    
If MsgBox("Möchten Sie ein Diagramm für die Direktion " & Cells(i + 5, 2).Value & "  erstellen?" _
 _
 _
, vbYesNo, "Frage") = vbNo Then
Tabelle1.OLEObjects("CheckBox" & i).Object.Value = False
Exit For
end if
end sub

Nun zu meiner Frage. Wenn ich oben genannten Code nutze, kann ich zwar damit arbeiten, muss aber das Makro selbstständig starten.
Wenn ich direkt über die Checkbox gehe

Private Sub CheckBox1_Click()
.
.
.
end sub

also einen Hacken setze, wird das Makro direkt ausgeführt.
Gibt es die Möglichkeit, das Makro auszuführen, sobald EINE Checkbox aktiviert wird?
Für jede Unterstützung bedanke ich mich.
Gruß

Bild

Betrifft: Das geht am einfachsten...
von: Case
Geschrieben am: 07.09.2015 14:46:56
Hallo, :-)
... über Klassenprogrammierung:
Alle Steuerelemente...
Servus
Case


Bild

Betrifft: AW: Das geht am einfachsten...
von: Psy
Geschrieben am: 07.09.2015 14:59:16
Hi Case,
vielen Dank für die Unterstützung.
Um ehrlich zu sein, verstehe ich nicht was es mit der Klassenprogrammierung auf sich hat. Habe die Datei heruntergeladen aber das ist doch zu hoch für mich. Versuche mich aber trotzdem darin einzuarbeiten.
Oder ich bin zu faul und ändere den Code 17 mal ab. Mal sehen. :)
Gruß und Danke...

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Daniel
Geschrieben am: 07.09.2015 14:53:15
Hi
wenns möglich ist, Listbox im Multiselect-Modus verwenden.
dann hast du nur ein Steuerelement, unabhängig von der Anzahl der Einträge.
Gruß´Daniel

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Psy
Geschrieben am: 07.09.2015 15:01:03
Hi Daniel,
danke für den Tipp. Leider geht es nicht mit einer Listbox. Mir geht es ja nur darum, das für jede Checkbox eine Direktion im Unternehmen steht und sobald eine ausgewählt wird, sollen die Daten dieser Direktion zusammengefahren werden.
Trotzdem danke für die Hilfe. :)
Gruß

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Daniel
Geschrieben am: 07.09.2015 15:08:34
Hi
ja und???
bei einer Listbox steht halt jeder Listboxeintrag für eine Direktion im Unternehmen.
Warum sollte das nicht funktionieren?
aber auch wenn du mit Checkboxen arbeitest, sollte es eigentlich nicht notwendig sein, für jede Checkbox so einen Code zu schreiben.
beim Arbeiten mit Checkboxen geht man doch eher so vor, dass man erst alle benötigten Checkboxen anhakt, und dann wenn man fertig ist ein Makro startet, welches alle Checkboxen durchgeht, überprüft ob diese angehakt sind und wenn ja, die entsprechenden Aktionen ausführt.
Gruss Daniel

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Psy
Geschrieben am: 07.09.2015 15:16:53
Hi Daniel,
das mit der Listbox ist gar keine schlechte Idee. Werde mal testen, ob so etwas passt.
Danke für die Anregung.
Gruß

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Daniel
Geschrieben am: 07.09.2015 15:23:06
Hi
die eine alternative wäre die angeblich einfache Klassenprogrammierung.
die andere alternative wäre, dass du statt der ActiveX-Checkboxen die Formularfeld-Checkboxen verwendest.
diesen kannst du dann ein Makro aus einem allgemeinen Modul zuweisen (geht über das Kontextmenü, auch für mehrere gleichzeitig), welches dann bei Klick ausgeführt wird.
dieses Makro kann von mehreren Elementen verwendete werden, dh du brauchst nur ein Makro.
im makro kannst du dann über Application.Caller abfragen, welches Element das Makro ausgelöst hat.
(das wäre dann sowas wie "Klassenprogrammierung light")
Gruß Daniel

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Psy
Geschrieben am: 07.09.2015 15:36:49
Hi Daniel,
habe es glaube ich hinbekommen mit der Listbox.
Die erste Prüfung hat ergeben, dass die korrekten Daten übernommen werden. Zuerst einmal vielen Dank für den sehr guten Tipp.
Eine Frage hätte ich noch.
Wenn ich in der Listbox eine Direktion auswähle, dann erscheint bei mir eine MsgBox. Soweit so gut. Nur leider bleibt die Listbox dabei geöffnet und erst wenn ich meine Wahl in der MsgBox (ja oder nein) treffe, wird die Listboxauswahlliste geschlossen. Ist zwar jammern auf hohem Niveau aber ist es möglich, dass sich nach der Wahl der Direktion in der Listbox, die Listboxauswahlliste zuerst schließt und danach die MsgBox erscheint?
Gruß

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Daniel
Geschrieben am: 07.09.2015 15:46:43
Hi
sorry, ich verstehe nicht, was du meinst.
ich halte es eigentlich auch für falsch, sofort bei Klick auf die Listbox ein Makro auszulösen.
Sinnvoller wäre, wenn der Anwender erstmal alle benötigten Direktionen auswählen kann (und ggf auchwieder abwählen) und erst wenn er damit fertig ist, startet er über einen weitern Button ein Makro.
damit würde sich dann auch die Msgbox mit der Sicherheitsabfrage nach jedem Klick erübrigen.
Gruß Daniel

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Psy
Geschrieben am: 07.09.2015 15:54:51
Hi Daniel,
das ist korrekt. Aber es soll immer nur eine Auswertung je Direktion erstellt werden. Wahrscheinlich werde ich dies so lassen, oder über einen CommandButton in Excel soll die Auswertung gestartet werden.
So kann erst die Direktion gewählt werden und erst beim klick auf den CommandButton wird das Makro gestartet.
Und sollte es sinnvoll sein, einmal mehrere Direktionen gleichzeitig auszuwerten, muss ich das Makro umschreiben.
Somit wäre meine Frage beantwortet und ich bedanke mich für die super Hilfe.
Gruß

Bild

Betrifft: AW: Checkbox mit Variable ansprechen
von: Daniel
Geschrieben am: 07.09.2015 16:02:19
Hi
dann wären ja Optionbuttons bzw die Single-Select-Listbox die Mittel deiner Wahl und keine Checkboxen!
Die Single-Select-Listbox lässt sich dann auch einfacher auswerten, weil du den angeklickten Wert mit Listbox1.ListIndex direkt abfragen kannst und keine Schleife brauchst.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Checkbox mit Variable ansprechen"