Hej.
Nie napisałeś o jakie formanty chodzi i gdzie są umieszczone?
-na arkuszu formant z paska 'formularze'
-na arkuszu formant z 'przybornika formantów'
-na userform
Ogólnie, to 'sender' jest nie do pobrania, ale ...
1. Dla formantu z paska 'formularze' np.
Sub Kliknięcie()
MsgBox Application.Caller
End Sub
2. Dla formantów na userform - przekaż nazwę jako parametr.
Private Sub CommandButton1_Click()
test "CommandButton1"
End Sub
Sub test(sender)
MsgBox sender
End Sub
Jeśli wiele przycisków (np. 100) ma wykonywać to samo makro i w makrze chcesz zidentyfikować przycisk, który makro wywołał to:
- definiujesz własną klasę np. clsButton z jednym buttonem i obsługą zdarzenia 'click' z którego wywołujesz swoje makro podając jako parametr 'name',
- przy uruchomieniu formy, dodajesz wszystkie przyciski do kolekcji o elementach clsButton |