Accueil

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 in excel

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.

ajout de bouton dans Excel

Dessinez-le dans la feuille, puis créez une nouvelle macro en cliquant sur Les macros  dans le ruban développeur.

Ajouter une macro pour le bouton de commande

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.

ajout de références dans Excel

Faites défiler la liste jusqu'à trouver Bibliothèque Microsoft CDO pour Windows 2000 . Cochez la case et cliquez D'accord .

ajout de cdo pour windows reference

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.

connecter le bouton de commande au script

Voici à quoi ressemble le message que j'ai reçu dans ma boîte de réception:

excel email reçu

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.

Coller le script email

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.

créer une tâche de base dans le planificateur de tâches

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 .

sélectionner le planificateur de tâches du programme

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.






Nuage de tags

Choix de L'éditeur


Thomas Becket

Je suis un écrivain indépendant qui couvre la programmation et les logiciels.
Je suis étudiant en informatique et je m'intéresse à la programmation, aux logiciels et à la technologie
Gadgets technologiques et critiques 2019