Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Ein Makro mehreren Buttons zuweisen
18.06.2018 15:00:56
Chris
Hallo Forum,
ich habe eine Userform mit 20 Buttons. Bei Klicke auf einem der Buttons - egal welcher - soll immer dasselbe Makro ausgeführt werden. Wie stellt man so etwas in VBA an?
Hier das auszuführende Makro - beschränkt auf den ersten Button.

If Me.CommandButton1.BackColor = vbGreen Then
Me.CommandButton1.BackColor = vbRed
End If
Schon mal danke,
Gruß Chris

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Makro mehreren Buttons zuweisen
18.06.2018 15:30:22
Torsten
hi Chris.
Ich vesteh nicht ganz. Also wenn der Button gruen ist, soll er bei klick rot werden?
Dann mach den Code halt fuer jeden Button. CommandButton2 usw.
Oder soll immer der gleiche Button rot werden?
AW: Ein Makro mehreren Buttons zuweisen
18.06.2018 15:33:24
Chris
Hallo Torsten,
das Makro oben bezieht sich beispielhaft nur auf CB1.Da ich 20 Buttons habe möchte ich nicht das obige Makro 20 mal kopieren (If Me.CommandButton2.3.4.5.....20)....
Mein Makro oben müsste demnach auch in einer(!) Variante geändert werden, so dass es für jeden der 20 Buttons gilt.
Gruß
Chris
AW: Ein Makro mehreren Buttons zuweisen
18.06.2018 17:28:10
Daniel
Hi
such mal nach "Klassenprogrammierung"
damit kann man sowas machen, dh ein Eventmakro erstellen und dieses dann mehren Buttons zuweisen.
mehr kann ich dir dazu aber auch nicht sagen (sollte aber auch Beispiele im Archiv geben)
Wenn dir die Klassenprogrammierung zu kompliziert ist (so wie mir), dann kannst du dir mit dieser Vorgehensweise die Arbeit etwas erleichtern:
Du schreibst den eigentlichen Code in ein normales Makro und rufst dann von den Klick-Events nur noch dieses Makro auf, so dass du im Änderungsfall nur einmal das normale Makro anpassen musst.
Das angeklickte Steuerelement übergibt man als Parameter:
Private Sub Steuerelement_Färben(crtl as control)
If crtl.BackColor = vbGreen Then
crtl.BackColor = vbRed
End If
End Sub
du brauchst dann zwar immer noch für jeden commandbutton ein Klick-Eventmakro, aber das lässt sich ja einfach per Kontextmenü erzeugen.
in das Klickevent-Makro kommt dann diese Programmzeile:

Private Sub Commandbutton1_Click()
Call Steuerelement_Färben(ActiveControl)
End Sub
ActiveControl ist das zuletzt angeklickte Control der Userform, damit kannst du dann im KlickEventmakro das angeklickte Steuerelement referenzieren, ohne den Namen anpassen zu müssen.
damit ist der Code im Klick-Eventmakro für alle Buttons der gleiche, so dass du ihn einfach per Copy-Paste übertragen kannst.
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige