Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como VALIDAR Celdas INGRESO de EMAIL con Macro Excel VBA #560

validar ingreso de correo electronico email

VALIDAR EL INGRESO DE CORREO ELECTRONICO O MAIL EN CELDAS DE EXCEL

En este ejemplo se muestra como crear una regla de validación con macro de excel, la macro crea una validación que solo permite el ingreso de correo electrónico  o email en la celda del libro de Excel, la macro crea una formula que se utiliza para validar el ingreso de un mail en la celda de Excel.

Aprende a manejar Excel, 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.

VALIDAR INGRESO DE CORREO ELECTRONICO O EMAIL EN EXCEL CON VBA

Este ejemplo al insertar un dato en la columna A se crea una validación en la columna D, la macro automáticamente detecta que se a ingresado un dato en cualquier fila de la columna A, creando un validación de datos en la columna D, que solo permite ingresar el un correo electrónico o dirección de mail.

La formula que se crea la macro e introduce en Excel para validar el ingreso de datos es la siguiente:

=O(ESNUMERO(COINCIDIR(«*@*.???»;D13;0));ESNUMERO(COINCIDIR(«*@*.??»;D13;0)))

Esta fórmula detecta que se haya ingresado «@» (arroba) y un «.» (punto), en el caso que no se hayan ingresado esos caracteres, que identifican una dirección de correo electrónico o email, la validación creada no deja ingresar datos en la celda con validación creada para aceptar una dirección de mail solamente.

Explicación del código VBA para permitir el ingreso de dirección de mail solamente

La macro comienza al detectar que se ha producido un cambio en las celdas de la columna A, es decir se ha ingresado un dato, lo mencionado lo permite hacer el siguiente código:

If Target.Row > 1 And Target.Column = 1 Then

Se crea un objeto con la hoja donde se insertará la validación, así:

Set a = Sheets(«Hoja1»)

Se crea la fórmula para validar el ingreso de correo electrónico o email solamente, se guarda en la variable «valida1», de la siguiente manera:

valida1 = «=OR(ISNUMBER(MATCH(«»*@*.???»»,D» & Target.Row & «,0)),ISNUMBER(MATCH(«»*@*.??»»,D» & Target.Row & «,0)))»

Si nos fijamos en la forma en que se introduce la fórmula con macro de VBA y como se escribiría en Excel, existen pequeñas grandes diferencias, por ello hay que tener en cuenta ciertas reglas podríamos llamarle para que la macro pueda escribir la macro para validar, se se pueden resumir de la siguiente forma:

 – Se debe tener en cuenta que para escribir formulas con macros.
– Se debe reemplazar (;) por (,)
– Se debe agregar comillas encerrando comillas «.» así «».»»
– Se debe tener en cuenta que las formulas deben estar en Inglés

Posteriormente se crea la validación en la celda de la columna D y fila cuya modificación se produjo o la fila donde se creo el nuevo registro en este ejemplo.

La validación es de tipo personalizada y en parte destinada a la fórmula de validación se agrega o coloca el nombre de la variable creada «valida1», el código es el siguiente:

With a.Cells(Target.Row, «D»).Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:=valida1 
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = «Dato inválido»
.ErrorMessage = «Debe ingresar una dirección de email válida»
End With
End If

Cuando un dato ingresado es invalido, tal cual lo expone el código anterior, sale un mensaje de error, cuyo titulo del mensaje dice «Dato inválido» y el mensaje «Debe ingresar una dirección de email válida».

Código VBA para validar el ingreso de Email en Celdas de Excel

Código que se ingresa en Worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
‘On Error Resume Next
If Target.Row > 1 And Target.Column = 1 Then
Application.ScreenUpdating = False
Set a = Sheets(«Hoja1»)
valida1 = «=OR(ISNUMBER(MATCH(«»*@*.???»»,D» & Target.Row & «,0)),ISNUMBER(MATCH(«»*@*.??»»,D» & Target.Row & «,0)))»

With a.Cells(Target.Row, «D»).Validation
.Delete
‘Se debe tener en cuenta que para escribir formulas con macros
‘se debe reemplazar (;) por (,)
‘se debe agregar comillas encerrando comillas «.» así «».»»
‘se debe tener en cuenta que las formulas deben estar en Ingles

.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:=valida1 ‘=O(ESNUMERO(COINCIDIR(«*@*.???»;D13;0));ESNUMERO(COINCIDIR(«*@*.??»;D13;0)))
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = «Dato inválido»
.ErrorMessage = «Debe ingresar una dirección de email válida»
End With
End If
Application.ScreenUpdating = True
End Sub

Código que se ingresa en un módulo

Sub BORRA()
Sheets(«Hoja1»).Range(«D:D»).Validation.Delete
MsgBox («La validación se eliminó con éxito»), vbInformation, «https://macrosenexcel.com»
End Sub


Descarga el Libro Como Validar el Ingreso de Correo Electrónico

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