Validar mayúsculas en textbox vba.excel

Quisiera un apoyo en esta nueva consulta,

Tengo una hoja excel en la cual he insertado varios objetos entre txt, cbo, chk, el detalle esta en como validar los txt con mayúsculas, se hacerlo con el evento Keypress e insertando este código " KeyAscii = Asc(UCase(Chr(KeyAscii)))" pero como tengo muchos txt en la hoja, quisiera saber si se puede aplicar algún criterio para toda la hoja en la cual en una sola instrucción afecte a todos los txt.

1 Respuesta

Respuesta
2

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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. 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

  1. Abre tu hoja de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo de clase, revisa que la clase creada se llame "Clase1"
  4. 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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas