Validar correo, números y textos en Formularios VBA

La validación de datos en formularios VBA Excel es crucial para garantizar la precisión de la información ingresada por los usuarios. Permite restringir el tipo de datos que se pueden introducir en cada campo, evitando errores y asegurando la calidad de los datos recolectados.

Validar Texto: Solo permite ingresar Texto

La siguiente función valida textos dentro de nuestros formularios, eso quiere decir que el usuario solo va poder ingresar textos y no números.

Function ValidarTexto(Texto As Variant)

    Dim Caracter As Variant
    Dim Largo As String
    Dim i As Integer
    On Error Resume Next
    Largo = Len(Texto)
    
    For i = 1 To Largo
        Caracter = CInt(Mid(Texto, i, 1))
        
        If Caracter <> "" Then
            If Not Application.WorksheetFunction.IsText(Caracter) Then
                Texto = Replace(Texto, Caracter, "")
                ValidarTexto = Texto
            Else
            End If
        End If
        
    Next i
    
    ValidarTexto = Texto
    On Error GoTo 0
    
End Function

Validar Número: Solo permitir Ingresar Números

La siguiente función valida números dentro de nuestros formularios, eso quiere decir que el usuario solo va poder ingresar números y no textos.

Function ValidarNumero(Texto As Variant)

    Dim Caracter As Variant
    Dim Largo As Integer
    Dim i As Integer
    On Error Resume Next
    Largo = Len(Texto)
    
    For i = 1 To Largo
        Caracter = Mid(CStr(Texto), i, 1)
        
        If Caracter <> "" Then
            If Caracter < Chr(48) Or Caracter > Chr(57) Then
                Texto = Replace(Texto, Caracter, "")
                ValidarNumero = Texto
            Else
            End If

        End If
        
    Next i
    
    ValidarNumero = Texto
    On Error GoTo 0
    
End Function

Validar Números: Ingresar una cierta cantidad de Números.

Ahora vamos a validar el cuadro de texto cuyo nombre es TextBox8. Esto lo podemos hacer con el evento Exit para exigirle al usuario que escriba menos de 10 números, con esta línea de código «If VBA.Len(Me.TextBox8.Value) < 10 Then» entonces si escribe mas de 10 dígitos saltará una alerta impidiendo al usuario seleccionar cualquier otro elemento hasta que escriba menos de 10 números.

Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If VBA.Len(Me.TextBox8.Value) < 10 Then
MsgBox "El Número debe de tener menos de 10 dígitos", vbaExclamation
Cancel = True
Else
' No hace nada
End If

End Sub

Validar Números método 2

El siguiente código nos bloqueara el ingreso de texto al nuestro TEXTBOX.

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  If (KeyAscii >= 46 And KeyAscii <= 57) Then
    KeyAscii = KeyAscii
  Else
    KeyAscii = 0
  End If
End Sub

Validar Números y Textos: limitar el ancho de una cadena usando la propiedad MaxLength

Para poner un número máximo a una cadena de Textos o Números podemos utilizar la Propiedad MaxLength de VBA.

Validar Correo, Email: Valida correos, emails con una función.

Function Valida_Correo(email As String) As Boolean

Application.Volatile

'Declaramos variables
Dim oReg As RegExp

' Crea un Nuevo objeto RegExp
Set oReg = New RegExp

On Error GoTo ErrorHandler

'Expresión regular para validar direcciones .com
'oReg.Pattern = "^[\w-\.]+@\w+\.\w+$"

' Expresión regular para validar direcciones .com.pe
oReg.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"

' Comprueba y Retorna TRue o false
Valida_Correo = oReg.Test(email)

Set oReg = Nothing

Exit Function

'En caso de error
ErrorHandler:

MsgBox "Ha ocurrido un error: ", vbExclamation, "El Tío Tech"

End Function

Luego de crear la función podemos llamarla desde el Evento Exit o también desde un botón de formulario. En este ejemplo lo vamos a llamar desde el Evento Exit utilizando el cuadro de texto. Textbox7.

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Valida_Correo(TextBox7.Value) = False Then
    MsgBox "Se recomienda que valides el email", vbExclamation
    Cancel = True
Else

End If

End Sub

El último paso a utilizar será activar la referencia «Microsoft VBScript Regular Expresions 1.0» para validar el email. Clic en la pestaña referencias > luego activar «Microsoft VBScript Regular Expresions 1.0».

Creación de un formulario con botones: Registrar, Modificar, Eliminar, Limpiar y Buscar .

Related Articles

Responses

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *