Sorry wg. Doppelpost, vergaß mich zu identifizieren.
Zeile 47: NewButton.OnAction = "Aktion"
Ein kleines Beispiel von mir: in Telle "A1" von Sheet "Tabelle1" steht der Name eines Blattes.
Zuerst lasse ich alle Shapes auf dem Blatt löschen (Testzweck).
Dieser Inhalt bildet den Namen des Shapes, zudem geht er auf den Text des Shapes (kein Button).
OnAction kann ohne weiteres keine Parameter übergeben. Daher Makroaufruf ohne Parameter. Aber ...
Im aufgerufenen Makro erhalte ich eiene Pseude-Parameter über Application.Caller.
Mit dem, umgewandelt in String, kann man auf das Zielblatt wechseln.
Sub ButtonTest()
Dim cb As Shape
Sheets(1).Shapes.SelectAll
Selection.Delete
Set cb = Sheets(1).Shapes.AddFormControl(xlButtonControl, 10, 10, 100, 25)
cb.Name = Sheets(1).Range("A1")
cb.Select
Selection.Characters.Text = Sheets(1).Range("A1").Value
cb.OnAction = "Aktion"
Sheets(1).Range("A1").Select
End Sub
Private Sub Aktion()
Debug.Print Application.Caller
Dim strString As String
strString = CStr(Application.Caller)
Sheets(strString).Select
End Sub
|