Obligar a que se ponga un formato en textbox

Que pesaita soy, pero sois muy buenos.

Aver, me gustaría hacer algo parecido a las mascaras de entrada en access, os comento, en la bbdd los usuarios deben introducir muchas fechas y sabemos que a veces se nos van los dedos y las ponemos mal, lo que me gustaría es que le saliera un msgbox diciendo que lo que ha introducido esta mal, que borre lo que el usuario ha escrito y vuelva el cursos al mismo textbox.

¿Cómo lo puedo hacer?

Os pongo una pequeña parte de código para que veáis lo que ya esta puesto, ya esta para que ponga las barras separadoras "/" y para que me calcule la fecha más dos años pero lo que quiero es que no pueda poner "12/03/2015554" por ejemplo:

Private Sub TextBox1_Change()
largo_entrada = Len(Me.TextBox1)
Select Case largo_entrada
    Case 2
        Me.TextBox1.Value = Me.TextBox1.Value & "/"
    Case 5
        Me.TextBox1.Value = Me.TextBox1.Value & "/"
End Select
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then
fecha_numero = DateAdd("yyyy", 2, TextBox1)
TextBox9 = fecha_numero
End If
End Sub

1 respuesta

Respuesta
1

Para fechas, este es un buen código para ingresarlas sin barras y que además se controle su contenido:

Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
Select Case Len(TextBox1)
    Case 2:
        If Right(TextBox1, 2) > 31 Then
            MsgBox "Debes ingresar nro de día entre el 01 al 31", , ""
            TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
        Else
            TextBox1 = TextBox1 & "/"
        End If
    Case 5:
        If Right(TextBox1, 2) > 12 Then
            MsgBox "Debes ingresar nro de mes entre el 01 al 12", , ""
            TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
        Else
            TextBox1 = TextBox1 & "/"
        End If
     Case 8:
        If Not IsNumeric(Right(TextBox1, 2)) Then
            MsgBox "Debes ingresar el año con 2 dígitos entre 00 y 99", , ""
            TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
        End If
End Select
End Sub

Probala y comentame ... 

PD) Macro extraída de mi manual Formularios.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas