Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ScrollBar
BildScreenshot zu ScrollBar ScrollBar-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Welcher Button wurde geklickt?

Betrifft: Welcher Button wurde geklickt? von: gerwas
Geschrieben am: 30.07.2008 11:54:14

Hallo Leute

Ich habe hier ein ExcelArbeitsblatt auf dem sich viele Buttons befinden. Wie kann ich per Makro herausbekommen, welchen Button der User geklickt hat?

Ähnlich der Ereignisauswertung Worksheet_Change(ByVal Target As Range).

Gibts so etwas? Ich brauche den Namen des Buttons für die weitere Bearbeitung in dem an dem Button geknüpften Macro.

Das soll dann in etwa so aussehen:

Sub Button_geklickt()
If Button.Name="3055" then Call code3055
ElseIf Button.Name="3087" Then Call code3087
End If
End Sub



Gerwas

  

Betrifft: AW: Welcher Button wurde geklickt? von: mpb
Geschrieben am: 30.07.2008 11:57:27

Hallo,

den Satz " Ich brauche den Namen des Buttons für die weitere Bearbeitung in dem an dem Button geknüpften Macro." verstehe ich nicht. Was willst Du denn da noch abfragen, es ist doch eindeutig, dass der Button angeklickt wurde, mit dem der Code verknüpft ist. Villeicht kannst Du das noch einmal erläutern.

Gruß
Martin


  

Betrifft: AW: Welcher Button wurde geklickt? von: gerwas
Geschrieben am: 30.07.2008 12:42:33

Wie schon gesagt, das ExcelSheet hat viele Buttons. Die werden alle per VBA erzeugt und allen wird das Macro "mp_open" zugewiesen. Wenn ich jedem Button ein eigenes Macro zuweisen wollte müßte ich ja per VBA VBA-Code erzeugen...

Der Hintergrund ist der: Durch Klick auf den Button soll eine txtdatei erzeugt werden die als Datenquelle für eine Dokumentvorlage dient. Je nachdem welcher Button gedrückt wird ist der Inhalt der txtdatei anders. Die Dokumentvorlage liest beim Öffnen die txtdatei und füllt dann entsprechende Felder je nach deren Inhalt.

ich erzeuge die Buttons in einer Schleife wie folgt:

ActiveSheet.Buttons.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height * 2).Select
Selection.OnAction = "mp_open"
Selection.Name=gerät & "_" & bereich & "_" & nummer


Das funktioniert! Versuche ich aber dem OnAction-Macro Parameter zu übergeben kommt einen Fehlermeldung!

Selection.OnAction = "mp_open_mit_parametern " & gerät & "," & bereich & "," & nummer

Deshalb bin ich auf die Idee mit dem Namen gekommen. Nur ich kann ihn nicht auslesen, weil ich nicht weiss, welcher Button geklickt wurde...


Gerwas


  

Betrifft: AW: Welcher Button wurde geklickt? von: Rudi Maintaire
Geschrieben am: 30.07.2008 12:48:01

Hallo,

Sub makro()
  MsgBox ActiveSheet.Shapes(Application.Caller).Name
End Sub


Gruß
Rudi


  

Betrifft: AW: Welcher Button wurde geklickt? von: gerwas
Geschrieben am: 30.07.2008 16:33:24

Rudi du bist der größte! Genau das habe ich gesucht!!


  

Betrifft: AW: Welcher Button wurde geklickt? von: Heiko S.
Geschrieben am: 30.07.2008 12:48:50

Hallo Gerwas,

für solche Fälle gibt es diesen Befehl:

Application.Caller

Er gibt den Namen des Buttons zurück wenn du Ihn in den Code "hinter" den Buttons einfügst.


Gruß Heiko

PS: Rückmeldung wäre nett !


  

Betrifft: AW: Welcher Button wurde geklickt? von: gerwas
Geschrieben am: 30.07.2008 15:21:44

Danke Heiko - es funktioniert


  

Betrifft: AW: Welcher Button wurde geklickt? von: gerwas
Geschrieben am: 30.07.2008 16:32:10

Danke Heiko - es funktioniert


 

Beiträge aus den Excel-Beispielen zum Thema "Welcher Button wurde geklickt?"