Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Name eines Commandbuttons


Betrifft: Name eines Commandbuttons von: Andreas
Geschrieben am: 15.08.2018 14:17:05

Moin zusammen,

erstmal danke an alle, die hier Fragen beantworten!

Ich habe eine neue Frage :-) :

Ich benutze oft die Zeile, in der sich ein Commandbutton befindet und zwar mit folgendem Code:

'--------------------------------------------------------
Private Sub CommandButton2_Click()

Dim Knopfnummer As Integer 'Diese Variable spiegelt das "XXX" in "CommandButtonXXX" wider
Knopfnummer = 2 'DAS HIER MUSS MAN BEIM EINFÜGEN IN EIN ANDERES PROGRAMM ANPASSEN!!! Das "XXX" in "CommandButtonXXX" muss stimmen!!!

Dim Knopfzeile As Integer

Knopfzeile = ActiveSheet.Shapes("CommandButton" & Knopfnummer).TopLeftCell.Row
'--------------------------------------------------------
Meine Frage: Kann man die Variable "Knopfnummer" überflüssig machen? Gibt es z.B. eine Methode die den Namen des Commandbuttons ausgibt, der zuletzt gedrückt wurde oder dessen "_Click"-Methode gerade ausgeführt wird?

Danke im Voraus,
Andreas

  

Betrifft: AW: Name eines Commandbuttons von: Mullit
Geschrieben am: 15.08.2018 16:07:08

Hallo,

kommt darauf an, befindet sich der Button in einer Form oder auf nem TabBlatt?

Gruß, Mullit


  

Betrifft: AW: Name eines Commandbuttons von: Andreas
Geschrieben am: 15.08.2018 16:46:46

Der Button ist eine Befehlsschalftfläche (ActiveX-Steuerelement) auf einem normalen Arbeitsblatt.


  

Betrifft: AW: Name eines Commandbuttons von: Mullit
Geschrieben am: 15.08.2018 17:05:48

Hallo,

dann gehts wohl nur mit Klassenprogrammierung....

Gruß, Mullit


  

Betrifft: Dann besser mit Formularfeld-Button. von: Daniel
Geschrieben am: 15.08.2018 17:05:57

Hi
dann nimm statt dem ActiveX-Button einen Formularfeld-Button.
diesem weist du über das Kontextmenü ein Makro aus einem allgemeinen Modul zu, welches dann bei Klick ausgeführt wird.
in diesem Makro kannst du mit Application.Caller den Namen des aufrufenden Elements ermitteln.
mit ActiveSheet.Shapes(Application.Caller) kannst du dann den Button als Objekt referenzieren.

hat den Vorteil, dass du, wenn du mehrere Buttons mit prinzipell gleichem Code hast, nur ein Makro für alle Buttons benötigst, weil du das Makro aus dem allgemeinen Modul auch mehreren Buttons zuweisen kannst.
Die Differenzierung erfolgt über die Auswertung des Application.Caller

weiterer Vorteil: statt dem Formularfeldbutton kannst du hierfür auch jedes andere Grafikelement verwenden, was dir viel mehr Gestaltungsmöglichkeiten bietet.


Gruß Daniel


  

Betrifft: AW: Dann besser mit Formularfeld-Button. von: Andreas
Geschrieben am: 15.08.2018 17:32:08

Cool, das werde ich bei Zeit mal ausprobieren und berichten, wie es lief.

Danke!


Beiträge aus dem Excel-Forum zum Thema "Name eines Commandbuttons"