Linea macro TextBox con 1ª letra Mayúscula

¿Que tengo que agregar en el evento KeyPress del TextBox para que al escribir en los TextBox del cuadro del libro que te envíe, como sea que escriba, y sin usar la tecla Bloq Mayús se vea palabra o frase con la primera letra de cada palabra en Mayúsculas.

Solo para los TextBox 13, 2 y 3

Se de

Private Sub TextBox2_Change()

TextBox2 = UCase(TextBox2) End Sub

¿El evento tiene que ser precisamente Change? O ¿Puede ser en KeyPress? O en ¿LostFocus o GotFocus?

Me interesaría que pudiera ser en cualquier de los 3 últimos

EJ.: Nuevo Producto Ingresado

1 Respuesta

Respuesta
2

Prueba con este código para el textbox2

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
uf = Hoja2.Range("A" & Rows.Count).End(xlUp).Row
If Len(TextBox2) < 2 Then
    letra = UCase(Chr(KeyAscii))
    For i = 2 To uf
        If Left(Hoja2.Cells(i, "A"), 1) = letra Then
            TextBox2 = Hoja2.Cells(i, "A")
            TextBox2.SelStart = 0
            si = True
            Exit For
        End If
    Next
End If
If si Then KeyAscii = 0
End Sub

Los TextBox que quiero que se escriba, este o no la tecla Bloq Mayus, para mayúsculas o minúsculas que siempre quede la 1ª letra de cada palabra en los TextBox13, 2 y 3 en MAYÚSCULA.

Si es una sola palabra, que esta quede en el TextBox con la 1ª letra Mayúscula.

Si es una frase que cada palabra de la frase quede la 1ª letra en Mayúscula

Tendrá que ser ¿un KeyPress para cada TextBox? o se puede hacer una sola macro para los 3?.

Aclaro que los 3 insertan en celdas (columnas) diferentes.

Creo que el rango no importaría una ves que ya los TextBox están para insertar en sus respectivos rangos (celdas en columna).

No se si me hago entender

Si te entiendo, pero lo que pides ya te lo da el combo, el keypress sólo verifica una letra y tu quieres verificar 1 letra, 2 letras o toda la palabra, pero si ya pusiste una letra, en automático te pone la primer palabra o frase que encuentra.

¿Probaste lo que te envié?

Te envíe E-mail.

Cree un formulario y le metí 4 TextBox para probar y fue positivo sobre la ayuda que te pedí para la primera letra de cada palabra en una frase o, en una sola palabra pero, está para controles en Formulario, no en Hoja.Tambie nle cambie esta linea tbxCustom1 = StrConv(tbxCustom1, vbProperCase)

por

tbxCustom1 = UCase(tbxCustom1) ', vbProperCase)

y también funciona perfecto para meter todas letras en mayúsculas.

¿Cual inconveniente que tengo?

Quisiera que SOLAMENTE actuara sobre los 3 TextBox 13, 2 y 3.

Así también SOLAMENTE para los 3 TextBox 1, 4 y 5 la ultima linea que te present o acá,

tal como te explico en el Mail

probé TAMBIÉN EN LOS MISMOS tEXTbOX CREADOS

Si la solución puede ser co nun Select Case, mejor aun porque torna el código mas corto y con la misma función, per osolo para los 3 de cada grupo que te menciono

Tendría que ser con una Clase, te envié el código, si quieres lo implanto en tu archivo para que lo revises.

Saludos. DAM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas