.OnAction = "'Färbe """ & Replace$(objName.Name, InStrRev(objName.Name, "K", Compare:=vbBinaryCompare), "Kk", Count:=1) & """'"
Anmerkung: Debug.Print ist zur Ausgabe in den Direktbereich gedacht und darf nur links von einem Ausdruck stehen. Darum der Fehler.
Du machst es dir da unnötig kompliziert.
Probier mal so:
Option Explicit
Sub AbwKx_OnAction()
Dim shpButton As Excel.Shape
Dim objButton As Object
On Error Resume Next
Set shpButton = ActiveSheet.Shapes(Application.Caller)
On Error GoTo 0
If shpButton Is Nothing Then
Exit Sub
End If
If shpButton.Type <> msoFormControl Then
Exit Sub
End If
If shpButton.FormControlType <> xlButtonControl Then
Exit Sub
End If
Set objButton = shpButton.OLEFormat.Object
'Beispiel:
Select Case objButton.Name
Case "AbwK1"
'<code_für_AbwK1_hier>
Case "AbwK2"
'<code_für_AbwK2_hier>
' Case ...
' '<code_für_..._hier>
Case Else
Call MsgBox("Nicht behandelte Schaltfläche." & vbNewLine _
& "--> '" & objButton.Name & "'", _
vbInformation)
End Select
End Sub
... und weise jedem Button das obige Makro zu. Den Name des Buttons gibst du als Case an und kannst dann geziehlt sagen was passieren soll.
|