eventos en tiempode ejecucion en excel macros
como no especificaste bien lo que querés hacer, hice lo que me pareció...
en el ejemplo (básico) crea un botón en el formulario y captura el evento OnClick
'//Código para el UserForm
Dim btn As MSForms.CommandButton
Dim c As clsBtn
Private Sub UserForm_Initialize()
Set c = New clsBtn
Set btn = Me.Controls.Add("Forms.CommandButton.1", "btn", True)
btn.Caption = "hello!"
c.Add btn
c.OnClick = "btn_OnClick"
End Sub
'//Código para el módulo (estándar)
Public Sub btn_OnClick()
MsgBox "hello!"
End Sub
'//Código para el módulo de clase (clsBtn)
Private WithEvents m_btn As MSForms.CommandButton
Private m_sFncClic As String
Public Event Click()
Public Sub Add(b As MSForms.CommandButton)
Set m_btn = b
End Sub
Public Property Let OnClick(ByVal sFncName As String)
On Error Resume Next
m_sFncClic = sFncName
End Property
Private Sub m_btn_Click()
On Error Resume Next
Call Run(m_sFncClic)
End Sub
también el código asignado al botón puede ser creado dinámicamente, pero se complica
y no suele ser muy práctico...
Saludos, desde Baires, JuanC