Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como VALIDAR Listado de EMAIL CORREO ELECTRONICO en Excel VBA #590

Validar listado de correos electronicos validacion mail

VALIDAR LISTADO DE DIRECCIONES DE EMAIL O CORREOS ELECTRONICOS

En este post se muestra como validar un listado existente de correos electrónicos o emails, la macro permite determinar si un mail ya escrito en un listado es correcto o no utilizando una macro programada con VBA en Excel.

Aprender a operar Excel en forma efeicaz, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

DETERMINAR SI LAS DIRECCIONES DE MAIL SON CORRECTAS

Para verificar como funciona el ejemplo, recomiendo descargar el archivo, se debe presionar el botón verde y se empezará a ejecutar una macro que valida si están bien escritas o no las direcciones de correo electrónico que se encuentran en la columna C.

Desde ya les digo que las direcciones de mail que figuran son todas inventadas y a los fines de mostrar como funciona el ejemplo, ello es los fines de que evitan tratar de hacer una base de datos de email con dicho listado.

La macro compara la cadena de caracteres que conforman la dirección del email contra un patrón establecido que permite validar mails, si coincide entonces pinta o colorea la celda con verde y en la columna D fila correspondiente escribe «OK».

Por el contrario si la cadena de caracteres que conforman la dirección de correo electrónico, no coincide con el patrón establecido, entonces pinta la celda de color rojo y en la columna D fila correspondiente se muestra la leyenda «ERROR».

El patrón utilizado para contrastar y determinar si en la celda analizada se encuentra inserta una dirección de mail es el siguiente:

«^[\w-\.]+@([\w-]+\.)+[A-Za-z]{2,4}$»

Explicación del código para Validar un listado de Emails

El código está en el módulo 1, primero se crea un objeto con la hoja donde se está trabajando, a los fines de facilitar la escritura del código solamente, así:

Set a = Sheets(«Hoja1»)

Se determinar la última fila con datos para realizar un bucle hasta ficha fila, con el siguiente código:

uf = a.Range(«A» & Rows.Count).End(xlUp).Row

Se hace un bucle For … Next para analizar los datos de la fila 2 hasta al última fila con datos, se usa el código: 

For x = 2 To uf

… código de la macro

Next x

Luego se crea un objeto de expresiones regulares, para usar el patrón que establece si la cadena de caracteres analizada se condice un una dirección de mail, el código es:

With CreateObject(«vbscript.regexp»)
… código para establecer si es mail 
End With


Luego se establece el patrón con el cual se comparará lo escrito en la celdal con el siguiente código:

.Pattern = «^[\w-\.]+@([\w-]+\.)+[A-Za-z]{2,4}$»

Luego se analiza lo escrito, si coincide o no con el patrón dado en caso de ser verdadero, significa que se ha escrito una dirección de email correcta.


If .test(a.Cells(x, «C»)) Then
a.Cells(x, «C»).Interior.Color = 65280
a.Cells(x, «D») = «OK»

En caso de ser negativo se ha escrito una dirección de correo electrónico incorrecta, el código usado es:

Else
a.Cells(x, «D») = «ERROR»
a.Cells(x, «C»).Interior.Color = 255
End If

Luego de analizar la cadena de caracteres y compararla con el patrón para establecer si se ha escrito una dirección de mail correcta, se finaliza la macro.

Código VBA para Determinar si las direcciones de Email de un Listado son Correctas

Sub ValidaMail()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = Sheets(«Hoja1»)
uf = a.Range(«A» & Rows.Count).End(xlUp).Row

For x = 2 To uf
With CreateObject(«vbscript.regexp»)
.Pattern = «^[\w-\.]+@([\w-]+\.)+[A-Za-z]{2,4}$»
If .test(a.Cells(x, «C»)) Then
a.Cells(x, «C»).Interior.Color = 65280
a.Cells(x, «D») = «OK»
Else
a.Cells(x, «D») = «ERROR»
a.Cells(x, «C»).Interior.Color = 255
End If
End With
Next x

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub



Descarga el Libro Como Validar Listado de Correos Electrónicos

Descarga desde acá el archivo usado como ejemplo en este post y en el vídeo explicativo, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407