Acomodame esta macro para 1ª mayúscula

Comencé esta macro pero no llego al final.

Como dice el titulo; para que al escribir en dichos TextBox, la 1ª letra salga en Mayúscula

' Colocar la 1ª letra en Mayusculas a estos TextBox
Sub TextBox() '¿ESTO ESTA BIEN? O TIENE QUE SER DENTRO DEL CODIGO DEL FORM?
    Dim may, mayu
        may = Array("TextBox3", "TextBox7", "TextBox8", "TextBox10", "TextBox11")
        For i = LBound(may) To UBound(may)
            If Controls(may(i)) = ¿que pongo aqui?
                StrConv(may.Text, vbProperCase)
            End If
        Next
End Sub

2 Respuestas

Respuesta
2

Prueba esto:

Private Sub TextBox1_Change()
TextBox1.Text = UCase(Left(TextBox1.Text, 1)) & LCase(Mid(TextBox1.Text, 2))
End Sub
Respuesta
1

H o l a:

Te anexo los ejemplos para convertir el texto a mayúsculas o minúsculas:

Sub letras()
'Por.Dante Amor
    texto = "dante amor"
    '
    texto = UCase(texto)                            'resultado DANTE AMOR
    texto = LCase(texto)                            'resultado dante amor
    texto = UCase(Left(texto, 1)) & Mid(texto, 2)   'resultado Dante amor
    texto = Application.Proper(texto)               'resultado Dante Amor
End Sub

Sal u dos

En qué momento quieres hacer el cambio, ¿después de que capturan la información en el textbox y se salen del textbox o cuando pasas los datos a la hoja?

Tienes que hacerlo dentro del formulario. Puede ser así, cuando se salen de cada textbox

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox3 = Application.Proper(TextBox3)
End Sub

Tendrás que repetir lo anterior para cada uno de los textbox.

Sal u dos

Hola DAM

Pues no, quisiera repetirlo porque tengo las líneas para ese fin pero quisiera un evento SOLO para los TextBox mencionados

Que sea par todos los que menciono en el Array, ¿Se puede?

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Dentro del código del formulario que tiene el libro, ¿sabes cuál es? Lista Para Repuestos.xlsm

Dam, se me coló la coma

Pues, no quisiera repetirlo y si un evento KeyPress para todos los mencionados en el Array

Los ejemplos los tengo todos lo que no se es construir UN SOLO evento para todos TextBox del array

Tienes que repetirlo para cada textbox.

También puede ser con el evento change:

Private Sub TextBox3_Change()
    TextBox3 = Application.Proper(TextBox3)
End Sub

No existe un evento para todos los textbox, tienes que crear una Clase, y sería con el evento Change del Control que hayas creado en la Clase.


Si necesitas ayuda para crear la Clase, genera una nueva pregunta para crear la Clase para los textbox que necesitas con la primera en mayúsculas.


Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas