EXCEL : Vérifier le format d’une liste d’adresses E-mail en VBA (Facile)

Après quelques recherches et des essais, voici une compilation de tutoriels où j’ai retenu ce qui fonctionnait. Cet article va vous permettre de vérifier facilement une liste d’adresses mails avec un fonction VBA.

Etape 1 : Préparer EXCEL

  1. Vos adresses mails doivent être sous forme tableau (1 adresse par ligne)
  2. Créer une colonne « EMail » (Exemple Col A) et une seconde « Tester » (Exemple Col B)

Etape 2 : Utiliser VBA

Le code, je ne l’ai pas écrit mais trouvé sur internet et testé.

  1. Appuyez sur Alt + F11 pour ouvrir Visual Basic Editor (VBE).
  2. Appuyez sur Ctrl + R pour afficher l’explorateur de projet.
  3. Cliquez avec le bouton droit sur le fichier souhaité à gauche (la feuille voulue).
  4. Dans le menu, choisissez Insérer un module.
  5. Copiez et Collez le code dans la fenêtre de code de droite.
  6. Enregistrez le code si vous le souhaitez (sous Xlsxm).
  7. Fermez VBA (ne pas fermer Excel)
Etape 2, Points 3 et 4
Etape 2, Points 5 et 6

Etape 3 : Utiliser la fonction VBA sur le tableau

  1. De nouveau sur la feuille excel, allez sur la colonne « Tester »
  2. Ligne B2, écrivez « =IsValidEmail(A2) »
  3. Appuyez sur Entrée de votre clavier
  4. Normalement, dans la colonne B2, il devrait s’afficher « VRAI »ou « FAUX »
  5. Si c’est le cas, faites glisser la cellule jusqu’à la fin de votre tableau.
  6. Terminé !

VRAI : Adresse email format valide

FAUX : Adresse email format non valide

Code :

Function IsValidEmail(sEmailAddress As String) As Boolean
    'Code from Officetricks
    'Define variables
    Dim sEmailPattern As String
    Dim oRegEx As Object
    Dim bReturn As Boolean
    
    'Use the below regular expressions
    sEmailPattern = "^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$" 'or
    sEmailPattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
    
    'Create Regular Expression Object
    Set oRegEx = CreateObject("VBScript.RegExp")
    oRegEx.Global = True
    oRegEx.IgnoreCase = True
    oRegEx.Pattern = sEmailPattern
    bReturn = False
    
    'Check if Email match regex pattern
    If oRegEx.Test(sEmailAddress) Then
        'Debug.Print "Valid Email ('" & sEmailAddress & "')"
        bReturn = True
    Else
        'Debug.Print "Invalid Email('" & sEmailAddress & "')"
        bReturn = False
    End If

    'Return validation result
    IsValidEmail = bReturn
End Function

Terminé 🙂

Sources (merci à eux) :

http://www.vbaexpress.com/kb/getarticle.php?kb_id=281

https://officetricks.com/validate-email-address-vba-code-excel/

Auteur MisterTeed