Pon el siguiente código en los eventos de thisworkbook
Nota: debes copiar todo el código, el código empieza desde Dim colTbxs
Cambia en la macro "prueba" por el nombre de tu hoja que contiene los textbox.
Dim colTbxs As Collection 'Collection Of Custom Textboxes
'
Private Sub Workbook_Open()
'Por.Dante Amor
'Almacena todos los textbox de la hoja
Dim ctlLoop As OLEObject
Dim clsObject As Clase1
Set colTbxs = New Collection
For Each ctlLoop In Sheets("prueba").OLEObjects
If TypeOf ctlLoop.Object Is MSForms.TextBox Then
Set clsObject = New Clase1
Set clsObject.tbxCustom1 = ctlLoop.Object
colTbxs.Add clsObject
End If
Next ctlLoop
End Sub
Instrucciones para poner la macro en los eventos ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- En el panel del lado derecho copia la macro
Pon lo siguiente en una clase
Public WithEvents tbxCustom1 As MSForms.TextBox 'Custom Textbox
'
Private Sub tbxCustom1_Change()
tbxCustom1 = UCase(tbxCustom1)
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, revisa que la clase creada se llame "Clase1"
- En el panel del lado derecho copia la macro
Guarda el archivo, cierra el archivo, vuelve a abrir el archivo. O ejecuta la macro que pusiste en los eventos de ThisWorkbook.
Listo, con ese código sirve para todos los textbox de la hoja.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias