VBA: Vérifier la validité d’une adresse e-mail

Vérifier (et donc également en Excel) si une adresse e-mail est valide en VBA n'est pas une chose bien compliquée. Les règles générales de validité d'une adresse email ne sont pas très difficiles. Et VBA peut facilement automatiser tout cela.

Remarque: pour une utilisation plus pratique, le code qui suit ne s'applique pas aux adresses e-mail contenant des commentaires et d'autres "spécialités" qui ne sont pas utilisées par 99,9% des utilisateurs.

Règles de validité pour une adresse e-mail correcte

Voici donc les règles de base qui sont utilisées dans la fonction VBA proposée:

  • le nom d'utilisateur peut contenir les caractères: "a -> z", "A -> Z", "0 -> 9", de "-", "_", "." et les caractères spéciaux "!#$%&'*+-/=?^_`{|}~"
  • le nom de domaine peut contenir les caractères: "a -> z", "A -> Z", "0 -> 9", "-" et "."
  • utilisation obligatoire d'un "@"
  • minimum 1 caractère avant "@"
  • le nom de domaine et le suffixe après le "@"
  • le nom de domaine ne peut pas commencer ni se terminer par "-"
  • le suffixe doit contenir au moins deux caractères
  • plusieurs points (".") ne peuvent pas se suivre (ex: "..")

La page Wikipédia avec le détail de toutes les règles de validité d'une adresse e-mail (en anglais).

Normalement, ces règles peuvent être vérifiés en un coup d’œil dans le cas des adresses "classiques" (qui ne contiennent pas les caractères spéciaux). Le problème arrive au cas où vous avez un fichier Excel avec une liste de plusieurs centaines, voire milliers, de clients, de fournisseurs,… À ce moment-là, un coup d’œil ne suffit plus.

Et comme aujourd'hui, les adresses e-mail des clients ou des contacts constituent un bien précieux, notamment dans les entreprises, il vaut mieux d'en prendre soin. Une base de donnée des clients collectée via un formulaire web ne sert pas à grande chose si elle est remplie des adresses e-mail incorrectes.

C'est pourquoi je vous propose une fonction qui fera l'affaire. Cette fonction VBA vérifie la validité d'une adresse e-mail selon les critères cités plus haut. Elle retourne comme résultat le Boolean ("VRAI" ou "FAUX") selon que l'adresse e-mail soit valide ou pas.

Code VBA de la fonction qui vérifie si une adresse e-mail est valide

Cette fonction peut être utilisée dans vos macros VBA ou comme une UDF (User Defined Function) – c'est à dire directement dans les Feuilles Excel tout comme n'importe quelle autre fonction Excel (voir la capture d'écran).

VBA/Excel: Vérifier adresse e-mail
VBA / Excel: Vérifier adresse e-mail / courriel

Voici donc le code VBA de la fonction… Il vous suffit de le copier/coller dans un Module de votre Projet.

 

L'exemple de l'utilisation de la fonction AdresseEmailValide dans une procédure (Sub)

Cet exemple vérifie l'a validité de l'adresse "info@monwebsite.fr" et renvoie un message avec le résultat. N'oubliez pas que pour que le code qui suit fonctionne, vous aurez besoin de copier dans votre projet également le code précédent (le code de la fonction même).

À vous de jouer maintenant…

Bonus – fonction VBA vérifiant les listes d'adresses email dans Excel

Si vous avez une cellule ou une chaîne de caractères qui contiennent plusieurs adresses email séparées par un délimiteur (exemple ; ou , ) vous pouvez vérifier la validité de toutes ces adresses en même temps avec le code VBA suivant.

 

Si toutes les adresses sont valides, la fonction renvoie la valeur VRAI (TRUE). Si au moins une des adresses est incorrecte, le résultat sera FAUX (FALSE). Elle utilise deux arguments – le texte contenant la liste des adresses email et le délimiteur.

Vous pouvez utiliser cette formule aussi directement dans vos feuilles Excel. Par exemple si la liste des adresses email se trouve dans la cellule "A2" et elles sont séparées par un point-virgule, la formule sera la suivante:

=TousLesEmailsCorrects(A2,";")

N'oubliez pas, vous devez avoir dans votre projet VBA les deux codes: 1) la fonction de base (AdresseEmailValide) et 2) la fonction à utiliser avec la liste (TousLesEmailsCorrects).

Pour aller plus loin en Excel et en VBA

Et voici quelques liens vers d'autres articles d'Excel-Malin.com qui pourraient vous être utiles…

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

37 commentaires sur “VBA: Vérifier la validité d’une adresse e-mail”