Comment envoyer des courriels depuis une feuille de calcul Excel à l'aide de scripts VBA
Added 2018-11-19
Envoyer des courriels à partir de Microsoft Excel ne nécessite que quelques scripts simples. Ajoutez cette fonctionnalité à vos feuilles de calcul et vous pourrez vraiment améliorer vos performances dans Excel.
Nous avons présenté de nombreuses macros Excel de qualité, capables d’accomplir les mêmes tâches que les scripts VBA, mais sans connaissances en programmation. Mais il existe de nombreuses choses avancées que vous ne pouvez faire qu'avec VBA, comme créer un rapport de feuille de calcul avec toutes les informations de votre PC.
Vous préférez regarder ce tutoriel en vidéo? Nous vous avons couvert!
Pourquoi envoyer un email à partir d'Excel?
Il existe de nombreuses raisons pour lesquelles vous pouvez envoyer un courrier électronique à partir de Microsoft Excel.
Vous avez peut-être des employés qui mettent à jour des documents ou des feuilles de calcul toutes les semaines et vous souhaitez recevoir une notification par courrier électronique indiquant le moment où ces mises à jour sont effectuées. Ou vous pourriez avoir une feuille de calcul de contacts et vous voulez envoyer un email à tous à la fois.
Vous pensez probablement que la création d'un script pour une diffusion de courrier électronique à partir d'Excel sera compliquée. Ce n’est pas le cas du tout.
La technique décrite dans cet article utilisera une fonctionnalité disponible depuis longtemps dans Excel VBA, Objets de données de collaboration (CDO).
CDO est un composant de messagerie utilisé dans Windows depuis les toutes premières générations du système d'exploitation. Il s'appelait CDONTS et, avec l'avènement de Windows 2000 et XP, a été remplacé par «CDO pour Windows 2000». Ce composant est déjà inclus dans votre installation VBA sous Microsoft Word ou Excel et est prêt à être utilisé.
L'utilisation de ce composant facilite l'envoi de courriers électroniques à partir de produits Windows avec VBA. Dans cet exemple, vous utiliserez le composant CDO dans Excel pour envoyer un courrier électronique contenant les résultats d’une cellule Excel spécifique.
Étape 1: créer une macro VBA
La première étape consiste à accéder à l'onglet Développeur Excel. .
Dans l'onglet Développeur, cliquez sur Insérer dans la bande de contrôle, sélectionnez un bouton de commande.
Dessinez-le dans la feuille, puis créez une nouvelle macro en cliquant sur Les macros dans le ruban développeur.
Lorsque vous cliquez sur le Créer bouton, il ouvrira l’éditeur VBA.
Ajoutez la référence à la bibliothèque CDO en accédant à Outils > Références dans l'éditeur.
Faites défiler la liste jusqu'à trouver Bibliothèque Microsoft CDO pour Windows 2000 . Cochez la case et cliquez D'accord .
Quand vous cliquez D'accord , notez le nom de la fonction où vous collez le script. Vous en aurez besoin plus tard.
Étape 2: Configuration des champs «De» et «À» du CDO
Pour ce faire, vous devez d’abord créer les objets courrier et définir tous les champs nécessaires à l’envoi du courrier électronique.
Gardez à l’esprit que, si de nombreux champs sont facultatifs, le De et À les champs sont obligatoires.
Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = "Résultats de la feuille de calcul Excel"
strFrom = "[email protected]"
strTo = "[email protected]"
strCc = ""
strBcc = ""
strBody = "Les résultats totaux pour ce trimestre sont les suivants:" & Str (Sheet1.Cells (2, 1))
La bonne chose à ce sujet est que vous pouvez créer n’importe quelle chaîne pour personnaliser un message électronique complet et l’attribuer à la liste. strBody variable.
Regroupez les éléments du message en utilisant le Et chaîne pour insérer des données à partir de n'importe quelle feuille Microsoft Excel directement dans le message électronique, comme indiqué ci-dessus.
Étape 3: Configurez CDO pour utiliser un SMTP externe
La prochaine section de code indique où vous allez configurer CDO pour qu'il utilise un serveur SMTP externe pour envoyer le courrier électronique.
Cet exemple est une configuration non-SSL via Gmail. CDO est capable de SSL, mais cela sort du cadre de cet article. Si vous devez utiliser SSL, cette code avancé dans Github peut aider.
Définir CDO_Mail = CreateObject ("CDO.Message")
On Error GoTo Error_Handling
Définir CDO_Config = CreateObject ("CDO.Configuration")
CDO_Config.Load -1
Définir SMTP_Config = CDO_Config.Fields
Avec SMTP_Config
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mot de passe"
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Mettre à jour
Terminer par
Avec CDO_Mail
Définir .Configuration = CDO_Config
Terminer par
Étape 4: finaliser la configuration de CDO
Maintenant que vous avez configuré la connexion au serveur SMTP pour l’envoi du courrier électronique, il ne vous reste plus qu’à remplir les champs correspondants. Objet CDO_Mail et émettre le Envoyer commander.
Voici comment vous faites cela:
CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
La gestion des erreurs:
Si Err.Description
<>
"" Ensuite, MsgBox Err.Description
Il n’y aura pas de boîte de dialogue ou de message d’alerte de sécurité, ce qui peut arriver lorsque vous utilisez l’objet mail Outlook.
CDO rassemble simplement le courrier électronique et utilise les informations de connexion de votre serveur SMTP pour envoyer le message. C’est le moyen le plus simple d’incorporer le courrier électronique dans les scripts VBA Microsoft Word ou Excel.
Pour connecter votre bouton de commande à ce script, allez dans l'éditeur de code et cliquez sur Feuille1 pour afficher le code VBA pour cette feuille de calcul.
Tapez le nom de la fonction où vous avez collé le script ci-dessus.
Voici à quoi ressemble le message que j'ai reçu dans ma boîte de réception:
Remarque : Si vous recevez une erreur qui lit Le transport n'a pas réussi à se connecter au serveur , assurez-vous que vous avez entré le nom d'utilisateur, le mot de passe, le serveur SMTP et le numéro de port corrects dans les lignes de code répertoriées ci-dessous. Avec SMTP_Config .
Allez plus loin et automatisez l'ensemble du processus
Pour ce faire, vous devrez modifier la macro. Dirigez-vous vers Visual Basic Editor et copiez-collez l'intégralité du code que nous avons mis en place.
Ensuite, sélectionnez ThisWorkbook du Projet hiérarchie.
Dans les deux champs déroulants en haut de la fenêtre de code, sélectionnez Cahier de travail et sélectionnez Ouvrir dans le menu déroulant Méthodes.
Collez le script email ci-dessus dans Private Sub Workbook_Open () .
Cela exécutera la macro chaque fois que vous ouvrez le fichier Excel.
Ensuite, ouvrez Planificateur de tâches .
Vous allez utiliser cet outil pour demander à Windows d’ouvrir automatiquement la feuille de calcul à intervalles réguliers. La macro sera alors lancée pour envoyer le courrier électronique.
Sélectionner Créer une tâche de base… du action menu et continuez votre chemin dans l’assistant jusqu’à ce que vous atteigniez le action écran.
Sélectionner Commencer un programme et cliquez Suivant .
Utilisez le Feuilleter pour rechercher l’emplacement de Microsoft Excel sur votre ordinateur, ou copiez et collez le chemin dans le Programme / script champ.
Ensuite, entrez le chemin de votre document Microsoft Excel dans le répertoire Ajouter des arguments champ.
Terminez l'assistant et votre planification sera en place.
Remarque Remarque: Vous devrez peut-être ajuster vos paramètres du Centre de gestion de la confidentialité pour vous assurer que la macro fonctionne correctement.
Pour ce faire, ouvrez la feuille de calcul et accédez à Fichier > Les options > Centre de confiance .
De là, cliquez Paramètres du centre de confiance et, sur l'écran suivant, réglez le cadran de la radio sur Ne jamais afficher d'informations sur le contenu bloqué .
Faites travailler Microsoft Excel pour vous
Microsoft Excel est un outil incroyablement puissant, mais apprendre à en tirer le meilleur parti peut être un peu intimidant. Si vous voulez vraiment maîtriser le logiciel, vous devez être à l'aise avec VBA. et ce n’est pas une mince tâche.
Cependant, les résultats parlent d'eux-mêmes. Un peu d'expérience VBA à votre actif, vous pourrez bientôt faire en sorte que Microsoft Excel exécute automatiquement les tâches de base, vous laissant ainsi plus de temps pour vous concentrer sur des problèmes plus urgents.
Il faut du temps pour développer une expertise avec VBA, mais vous verrez bientôt les fruits de votre travail si vous en restez fidèle.