H o l a:
Tienes que crear una clase y agregar todos los textbox en la clase.
Primero crea la clase1 y agregas el siguiente código:
Option Explicit
Public WithEvents tbxCustom1 As MSForms.TextBox 'Custom Textbox
Private Sub tbxCustom1_Change()
'En esta parte tienes que poner la acción
MsgBox "Estás modificando el textbox: " & tbxCustom1.Name
End Sub
Private Sub Class_Terminate()
'Destroy The Class Object And Free Up Memory
Set tbxCustom1 = Nothing
End Sub
Instrucciones para crear una clase
- Abre tu hoja de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo de clase
- En el panel del lado derecho copia la macro
Ahora, en tu userform pon el siguiente código:
Dim colTbxs As Collection 'Collection Of Custom Textboxes
Private Sub UserForm_Initialize()
'Referencia
'http://www.ozgrid.com/forum/showthread.php?t=80631
Dim ctlLoop As MSForms.Control
Dim clsObject As Clase1
'Create New Collection To Store Custom Textboxes
Set colTbxs = New Collection
'Loop Through Controls On Userform
For Each ctlLoop In Me.Controls
'Check If Control Is A Textbox
If TypeOf ctlLoop Is MSForms.TextBox Then
'Create A New Instance Of The Event Handler CLass
Set clsObject = New Clase1
'Set The New Instance To Handle The Events Of Our Textbox
Set clsObject.tbxCustom1 = ctlLoop
'Add The Event Handler To Our Collection
colTbxs.Add clsObject
End If
Next ctlLoop
End Sub
Private Sub UserForm_Terminate()
'Destroy The Collection To Free Memory
Set colTbxs = Nothing
End Sub
En el ejemplo que te estoy enviando, en la clase puse esto:
'En esta parte tienes que poner la acción
MsgBox "Estás modificando el textbox: " & tbxCustom1.Name
En esa parte tienes que poner la acción que quieras realizar.
Avísame si necesitas ayuda para poner la acción.