¿Cómo valido cajas de texto? Solo letras y números.

Ya he realizado la validación de algunas cajas, unas para letras y otra para números; sin embargo, tengo algunas cajas donde necesariamente tienen que ser ambos, solo ambos.

Saludos.

1 Respuesta

Respuesta
1

Si por 'cajas' estamos hablando de controles TextBox, en ese caso creo que solo necesitas validar que no quede vacío, por ej, con estas instrucciones:

Private Sub txtCuenta_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txtCuenta = "" Then Cancel = True
End Sub


También podes establecer el máximo de caracteres permitidos desde su propiedad MaxLength


Sdos y no olvides finalizar la consulta


Hola ElsaMatilde.

Gracias por responder mi petición; sin embargo, me refería que no deben aceptar, por error, caracteres como: !"#$%&/()=?¡. Gracias.

Entonces se debe evaluar cada caracter del texto ingresado, con la función ASCII

Los rangos los podés encontrar en la Ayuda bajo ese tema, por ahora te dejo el control para números y letras (mayúsc y minúsc)... No sé qué tipo de texto vas a introducir en esos controles, quizás debas agregar en la rutina tambíén la ñ Ñ (164-165) y qizás los acentos.

El espacio es 0 por lo que entra en la primer evaluación (< 48) . Si vas a permitir espacios debes excluir el cero en las comparaciones.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Cancel = True
'controla que solo sean nros y letras (mayúsc o minúsc)
x = 0
For i = 1 To Len(TextBox1)
If Asc(Mid(TextBox1, i, 1)) < 48 Or Asc(Mid(TextBox1, i, 1)) > 122 Then x = 1
If Asc(Mid(TextBox1, i, 1)) > 57 And Asc(Mid(TextBox1, i, 1)) < 65 Or (Asc(Mid(TextBox1, i, 1)) > 90 And Asc(Mid(TextBox1, i, 1)) < 97) Then x = 1
Next i
If x <> 0 Then Cancel = True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas