Clever-Excel-Forum

Normale Version: VBA CommandButtons aktivieren/deaktivieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Huhu,

ich habe hier 6 Command Buttons.

Sie heißen CommandButton_A1 bis CommandButton_A6.

Sie sollen standardmäßig alle aktiviert/geklickt sein (bestimmte Farbe).

Wenn man auf einen Button klickt soll er deaktiviert werden. Wenn man nochmal darauf klickt soll man ihn aber wieder aktivieren können.

Alle aktivieren geht im initialize. Mit der Funktion click kann ich sie dann deaktivieren. Aber wie schaffe ich es, dass ich sie beliebig oft aktivieren und deaktivieren kann?
Hi,

ungefähr so ?

Code:
Private Sub Initialize()
  CommandButton1.BackColor = vbGreen
End Sub
Private Sub CommandButton1_Click()
  If CommandButton1.BackColor = vbGreen Then
    CommandButton1.BackColor = vbRed
  Else
    CommandButton1.BackColor = vbGreen
  End If
End Sub
moin

wie willste denn ein deaktiviertes Objekt durch klick auf das selbe wieder aktivieren?

benutze lieber einen Togglebutton dafür

MfG Tom
Probiere ich gerade. Aber ich kann die Farbe nicht festlegen.

Code:
Private Sub ToggleButton_A1_Click()

ToggleButton_A1.BackColor = RGB(160, 150, 120)

End Sub
Beim klick auf den ToggleButton wird er nur leicht schraffiert - nimmt aber nicht die gewünschte Farbe an.

Und wenn ich im Inizialize ToggleButton_A6.Visible = False setze wird er trotzdem noch angeziegt.
Irgendwie werde ich so nicht glücklich :22:

Ich habe 6 Alternativen. Die sollen Standardmäßig auch alle angezeigt werden (alle Buttons eine bestimmte Farbe / aktiviert). Aber man soll auch einzelne Alternativen abwählen können (Farbe auf Grau zurücksetzen).

Das klappt so nicht wirklich.

Nach belieben kann man die Alternativen nach dem Abwählen auch wieder anwählen / aktivieren.
(17.01.2019, 10:59)mmat schrieb: [ -> ]Hi,

ungefähr so ?

Code:
Private Sub Initialize()
  CommandButton1.BackColor = vbGreen
End Sub
Private Sub CommandButton1_Click()
  If CommandButton1.BackColor = vbGreen Then
    CommandButton1.BackColor = vbRed
  Else
    CommandButton1.BackColor = vbGreen
  End If
End Sub

Ja, von der Farbe nicht schlecht - aber er muss beim klick den Command Button auch wieder deaktivieren - nicht nur die Farbe ändern.
Hallo DieMarie,

ich habe mal einen Tipp für Dich. Suche Dir doch einmal einen Auftragsprogrammierer. Du fällst jeden Tag extrem auf.
Wie oft hast Du schon gelesen, dass du eine Beispieldatei mitgeben mögest?
Lg
Marcus
(17.01.2019, 11:46)DieMarie schrieb: [ -> ]Ja, von der Farbe nicht schlecht - aber er muss beim klick den Command Button auch wieder deaktivieren - nicht nur die Farbe ändern.

Was genau verstehst Du denn unter Deaktivieren?
Wofür sind diese CommandButtons gedacht?

Gruß Uwe
Hallo,

das ist alles eine Frage der Definition durch den Programmierer (sprich: von Dir).

In meinem Beispiel gehe ich davon aus, das der Button aktiviert ist, wenn er grün ist und deaktiviert wenn er rot ist. Das ist m. E. sehr schön intuitiv nachvollziehbar, weil Ampelfarbe.

Man kann natürlich auch mit RGB(??, ??, ??) jede andere Farbe zuweisen. Alternativ könnte man die Beschriftung ändern. Viele weitere Varianten sind denkbar.

Jedenfalls denk ich, dass man an meinem Beispiel sehen kann, wie man eine Zustand vor und zurückschaltet, mit nur einem Klick.

Achja, die Fragen von Uwe sind zu Recht gestellt:
  • Was genau verstehst Du denn unter Deaktivieren?
  • Wofür sind diese CommandButtons gedacht?
Es wäre sicherlich hilfreich beim Helfen, wenn man weiß, was dabei rauskommen soll.
(17.01.2019, 12:26)mmat schrieb: [ -> ]Hallo,

das ist alles eine Frage der Definition durch den Programmierer (sprich: von Dir).

In meinem Beispiel gehe ich davon aus, das der Button aktiviert ist, wenn er grün ist und deaktiviert wenn er rot ist. Das ist m. E. sehr schön intuitiv nachvollziehbar, weil Ampelfarbe.

Man kann natürlich auch mit RGB(??, ??, ??) jede andere Farbe zuweisen. Alternativ könnte man die Beschriftung ändern. Viele weitere Varianten sind denkbar.

Jedenfalls denk ich, dass man an meinem Beispiel sehen kann, wie man eine Zustand vor und zurückschaltet, mit nur einem Klick.

Achja, die Fragen von Uwe sind zu Recht gestellt:
  • Was genau verstehst Du denn unter Deaktivieren?
  • Wofür sind diese CommandButtons gedacht?
Es wäre sicherlich hilfreich beim Helfen, wenn man weiß, was dabei rauskommen soll.

Es gibt eine Grafik. Diese Grafik hat 6 Balken (6 Alternativen).

Die Grafik holt sich ihre Daten aus einer Tabelle die an eine Pivottabelle gekoppelt ist.
Über die Pivottabelle gibt es einen Datenschnitt mit dem Filter der Alternativen.
Sprich der Datenschnitt umfasst "Alternative 1", "Alternative 2" usw.

Wenn ich im Datenschnitt nur noch Alternative 2+3 auswähle wird mir auch nur noch Alternative 2+3 (2 Balken) in der Grafik angezeigt.

Probleme dabei:
Man kann anfangs bereits angeben, dass es nur 3 Alternativen gibt. Dann werden auch maximal 3 Balken im Diagramm angezeigt - allerdings stehen im Datenschnitt weiterhin 6 Alternativen.

Deshalb wollte ich den Datenschnitt ersetzen durch die Buttons.
Also 6 Buttons mit Alternative 1-6.

Gleiche Funktion wie der Datenschnitt - nur so, dass wenn man auf Blatt 1 angibt, dass es nur 3 Alternativen gibt dann soll auch nur Button 1-3 sichtbar sein.

Also mit einer Abfrage:
WENN Feld C10 = 3 DANN   (3 Alternativen in Feld C10 eingestellt)
Button_Alternative_4.vivible = false
Button_Alternative_5.vivible = false
Button_Alternative_6.vivible = false

Wenn ich dann Button 1 und 2 anklicke soll AUTOMATISCH Alternative 1 + 2 im Datenschnitt aktiviert werden.


Also im Prinzip stören mich nur die überflüssigen Werte im Datenschnitt.
Habe schon alles probiert... wenn ich die Felder mit NV() fülle steht #NV im Datenschnitt, wenn ich sie leer lasse steht ein leerer Wert im Datenschnitt und wenn ich sie hide stehen sie trotzdem im Datenschnitt.
Seiten: 1 2