Código para validar un textbox

Suponiendo que tengo dos textbox necesito que al dar enter me obligue a ingresar algún dato para pasar al segundo textbox .

Por otro lado necesito saber como validar los texbox suponiendo que tenga 3 textbox

Uno de fecha, otro de numero y otro de letras

2 respuestas

Respuesta
1

Para obligarte a ingresar un dato:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If TextBox1 = "" Then Cancel = True
End Sub

Para validar fecha te recomiendo que agregues un control de fecha, puede ser MonthView o DTPicker


Para agregar sólo números

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    'solamente números
    Select Case KeyAscii
        Case 48 To 57             '0123456789
        Case Else: KeyAscii = 0
    End Select
End Sub

Para agregar sólo letras

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    'solamente letras
    Select Case KeyAscii
        Case 65 To 90, 97 To 122     'A-Z, a-z
        Case 225, 233, 237, 243, 250 'á é í ó ú
        Case 193, 201, 205, 211, 218 'Á É Í Ó Ú
        Case 32, 241, 209            'barra espaciadora, ñ Ñ
        Case Else: KeyAscii = 0
    End Select
End Sub
Respuesta
1

Un modo de controlar el ingreso de fechas en un textbox es este, (aunque no siempre es exacto):

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1) Then Cancel = True
End Sub

Otro modo práctico de ingresar fechas si no querés agregar un control, es esta macro que 'evita' que tengas que ingresar los separadores. 

En este ejemplo se utiliza "/" y año de 2 dígitos pero eso podés modificar a gusto en el código que va explicado:

Private Sub TextBox19_Change()    'fecha
'x Elsamatilde
'si el control queda vacío no se ejecuta
If TextBox19 = "" Then Exit Sub
Select Case Len(TextBox19)
    Case 2:
        If Right(TextBox19, 2) > 31 Then
            MsgBox "Debes ingresar nro de día entre el 01 al 31", , ""
            TextBox19 = Left(TextBox19, Len(TextBox19) - 2)
        Else
            TextBox19 = TextBox19 & "/"
        End If
    Case 5:
        If Right(TextBox19, 2) > 12 Then
            MsgBox "Debes ingresar nro de mes entre el 01 al 12", , ""
            TextBox19 = Left(TextBox19, Len(TextBox19) - 2)
        Else
            TextBox19 = TextBox19 & "/"
        End If
     Case 8:
        If Not IsNumeric(Right(TextBox19, 2)) Then
            MsgBox "Debes ingresar el año con 2 dígitos entre 00 y 99", , ""
            TextBox19 = Left(TextBox19, Len(TextBox19) - 2)
        End If
End Select
End Sub

Y sinó como dice dante, con alguno de los controles dibujados en el formulario.

Te recuerdo que aún tengo esta respuesta sin comentar ni valorar.

En ocasiones se 'superponen' las respuestas dadas al mismo tiempo. Podés utilizar la que más te guste o te satisfaga cuando hay más de una solución posible.

Pero considera valorar y/o comentar todas las que recibis, atento a que hemos dedicado tiempo en ella.

PD) Tengo 2 pendientes ;(

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas