Cómo validar datos de ingreso

Para Elsa:

Estimada Elsa, en el archivo que hemos estado trabajando, ¿cómo podemos hacer para que dé un formato específico a los campos numéricos de teléfono?

1 respuesta

Respuesta
1

Los campos, que luego deben ser convertidos con alguna función como Cdate o C deben ser validados previamente.

Esta tarea puede realizarse:

1 - desde el botón Guardar:

If TextBox1 = "" Then
    MsgBox "Falta el código de Cliente.", , "ERROR"
    TextBox1.SetFocus
    Exit Sub
ElseIf Not IsNumeric(TextBox1) Then
    MsgBox "El código de Cliente debe ser numérico.", , "ERROR"
    TextBox1 = "": TextBox1.SetFocus
    Exit Sub
End If

Y así con cada campo obligatorio o con cierto tipo.

2 - Al salir de cada control:

En el siguiente ejemplo se exige que el dato sea numérico y de ser correcto se le asigna un formato, por ej: 123-4567891

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'solo nro o vacío
If Not IsNumeric(TextBox2.Text) And TextBox2.Text <> "" Then
    MsgBox "Solo debe ingresar numeros"
    TextBox2 = ""
    Cancel = True
End If
'aquí podrías colocarle algún formato  a un nro de 10 caracteres, con guión
If TextBox2 <> "" Then TextBox2 = Left(TextBox2, 3) & "-" & Mid(TextBox2, 4, 7)
End Sub

Como el campo 'no es obligatorio puede quedar vacío ... y en ese caso no se le da formato.

Nota: Solo debes utilizar uno de los 2 controles, lo que se controla a la salida del textbox no es necesario controlar desde el botón Guardar.

Para campos fecha lo ideal sería poder ingresarlas sin los separadores y luego la macro los coloca, así te aseguras de que siempre sea una fecha válida.

El ejemplo se encuentra en esta otra consulta respondida con anterioridad, extraído de mi manual de Formularios:

¿Como limito el dato que se introduce en un formulario de vba?

Sdos.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas