Procédure VBA : mail
La procédure VBA mail permet d'envoyer un email (sans faire appel à Outlook) en passant par la boîte mail de votre choix (Gmail dans cet exemple).
Elle peut avoir un large éventail d'utilisations, notamment celles d'envoyer des notifications par email ou d'envoyer un tableau correpondant à une plage de cellules du classeur Excel.
Utilisation simple :
mail email, expéditeur, sujet, message, login, mot_de_passe, serveur_smtp
Utilisation avancée :
mail destinataire, expéditeur, sujet, message, utilisateur, mot_de_passe, serveur_smtp, serveur_port, nom_expediteur, CC, BCC
Exemple d'utilisation
Voici un premier exemple simple d'utilisation de mail (envoi d'une notification par email) :
Sub exemple()
contenu = "Ma notification :<br><br>Date et heure : " & Now 'En HTML (<br> = saut de ligne)
mail "destinataire@exemple.com", "expediteur@gmail.com", "Titre de mon email", contenu, "expediteur@gmail.com", "MOT_DE_PASSE", "smtp.gmail.com"
End Sub
Après avoir exécuté cette macro, l'email arrive directement dans la boîte aux lettres du destinataire :

Il est donc possible grâce d'envoyer un email en une seule ligne grâce à mail.
Format du contenu = HTML
Pour appliquer une mise en forme au contenu de l'email, l'utilisation de balises HTML est nécessaire.
Si vous ne connaissez rien au HTML ou si vous ne souhaitez pas appliquer de mise en forme particulière, retenez juste ceci : entrez votre texte normalement et utilisez simplement la balise <br>
pour ajouter un saut de ligne. Par exemple :
contenu = "Ma notification :<br><br>Date et heure : " & Now '2x <br> = 2 sauts de ligne
Si vous avez quelques bases en HTML, n'hésitez pas à mettre en forme votre email, ajouter des liens, des images distantes, etc. Notez que le contenu de votre email sera automatiquement placé entre les balises body.
Un exemple simple en HTML :
Sub exemple()
contenu = "<h1>Mon super titre</h1><p>Mon incroyable phrase d'exemple ...</p><p>Bla bla bla ...</p>"
mail "destinataire@exemple.com", "expediteur@gmail.com", "Un email passionnant", contenu, "expediteur@gmail.com", "MOT_DE_PASSE", "smtp.gmail.com", , "Mon nom ici"
End Sub
Aperçu du résultat :

Insérer une plage de cellules en HTML
Cet add-in dispose déjà de fonctions permettant de convertir une plage de cellules en HTML, il s'agit des fonctions TABLEAU_HTML et TABLEAU_HTML_AVANCE (la seconde permet de conserver les principales mises en forme des cellules).
Par exemple :
Sub exemple()
contenu = "<h1>Mon super tableau</h1>" & TABLEAU_HTML_AVANCE(Range("A1:C12"))
mail "destinataire@exemple.com", "expediteur@gmail.com", "Plage de cellules", contenu, "expediteur@gmail.com", "MOT_DE_PASSE", "smtp.gmail.com", , "M. Tableau"
End Sub
Aperçu du résultat :
Remarque : cette fonction nécessite l'installation du pack de fonctions XLP (un add-in gratuit pour Excel qui ajoute 92 nouvelles fonctions).