Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

¿Cómo validar un email con macros?

| 4 comentarios

A pesar de no contar con una lista de direcciones de email contra la cual comparar si los email que escribimos son los correctos, es posible verificar si los email cumplen con una sintaxis determinada (secuencia de los elementos) .

Excel permite realizar esto con el uso de expresiones regulares. Esta validación revisa si el nombre de email es correcto, si contiene el @ y si el nombre del host al que pertenece el correo es correcto.

Ejemplo:

En el siguiente ejemplo se desarrolló un código que solicita datos a través de un formulario. Con los botones respectivos para ingresar datos y para cerrar el formulario.

fig5

Aquí se valida si el correo electrónico es correcto. Es decir, el email puede  contener en el nombre de usuario las letras desde la a hasta la z con mayúsculas o minúsculas y los números del 0 al 9 las veces que sean necesarios. Todo email ingresado debe contener el @ de forma obligatoria. Por último, el email puede contener en la primera parte del nombre del host tanto letras en minúsculas como números y en las demás partes, solo dos o tres caractéres entre a-z.

El código de esta función queda como se presenta a continuación:

FIG1

(Para mayor visualización de la imagen, hacer click en la misma)

Así mismo, se agregó dentro del código, mensajes de error para señalar que falta ingresar datos o que estos deben ser corregidos.

FIG2                                     FIG3

Por último, estos datos son almacenados en una tabla.

FIG4

(Para mayor visualización de la imagen, hacer click en la misma)

Código de VBA:

Cómo validar un email con macros

 

Artículo escrito por: Piero Arbulú Zumaeta

4 comentarios

  1. lo que todavio no puedo aprender a hacer es a validar la informacion de un textbox, por ejemplo yo quiero que alli introduzcan una nota y quiero que el rango este entre 0 a 20 o de lo contrario muestre un mensaje de error, e intentado con if then else, pero igual sigo sin poderhacerlo, alguien me puede ayudar.

    • Hola Ronnie,

      Lo primero que debes hacer es validar que la información ingresada sea sólo numérica; luego de ello, deberás evaluar que el valor de nota ingresado esté en el rango de 0 a 20, caso contrario, que se muestre un mensaje de error. El código seria el siguiente:

      Private Sub TextBoxNota_Change()
      If Not IsNumeric(TextBoxNota.Text) And TextBoxNota.Text "" Then
      Beep
      MsgBox "Ingrese un valor numérico."
      TextBoxNota.Text = ""
      TextBoxNota.SetFocus
      Else
      If (Val(TextBoxNota) 20) Then
      MsgBox "La nota debe estar entre 0 y 20."
      TextBoxNota.Text = ""
      TextBoxNota.SetFocus
      End If
      End If
      End Sub

  2. La validación de emails no funciona bien para dominios .info me imagino que porque la extensión tiene 4 letras.

  3. Excelente video, tengo una consulta. En una macro que envía correos dependo del ingreso de información de usuarios múltiples. El problema es que por errores de digitación colocan un correo mal, por ejemplo macro@gmal.com Esto ocasiona que el resto de correos no se envíen. Hay la posibilidad que si el correo no existe esto no ocasione que se pare el envío es decir descartar ese correo mal y continuar con el restante.

Deja una respuesta

Los campos requeridos estan marcados con *.