Comment envoyer des e-mails à partir d`une feuille de calcul excel à l`aide de scripts vba

L`utilisation des e-mails dans le cadre de tout programme est une bonne façon d`automatiser des tâches importantes, et il améliore également considérablement la valeur et la fonctionnalité d`un programme ou d`un script.

Dans le passé, je l`ai utilisé un email beaucoup dans mes travaux par lots et d`autres scripts automatisés, comme je l`ai décrit dans des articles passés ici sur l`utilisation des outils comme Envoyer un mail ou Blat d`émettre des e-mails directement à partir de la ligne de commande, ou à partir d`un script de ligne de commande.Envoyer automatisé des emails en utilisant SendEmail & Planificateur de tâches WindowsEnvoyer automatisé des emails en utilisant SendEmail & Planificateur de tâches WindowsPeu importe ce que votre travail est, en général tout le monde à un moment donné doit envoyer un courriel un patron ou superviseur des rapports d`état quotidiens, hebdomadaires ou mensuels.Lire la suite

Ceux-ci sont parfaits pour les moments où vous avez un script qui est suivi de la santé d`un ordinateur ou l`état d`un processus spécifique, mais si vous voulez automatiser l`envoi de courriels à partir de produits de bureau tels que Word ou Excel?

Il y a beaucoup de raisons pour lesquelles vous pourriez vouloir le faire. Peut-être vous avez du personnel que les documents de mise à jour ou feuilles de calcul sur une base hebdomadaire, et vous souhaitez recevoir une notification par e-mail quand ces mises à jour ont lieu, et même un rapport des données à partir de ces feuilles. Il y a quelques techniques que vous pouvez utiliser pour programmer des e-mails automatiques à partir d`Excel, mais mon préféré reste CDO.

Envoi de courriers électroniques à partir d`Excel

Vous pensez probablement que le courrier électronique sortant de script dans un script VBA Excel va être douloureusement compliqué. Eh bien, ce n`est pas le cas du tout.

CDO est un composant de messagerie utilisé dans Windows pour quelques générations de l`OS. Il sert à appeler CDONTS, puis avec l`avènement de Windows 2000 et XP, il a été remplacé par « CDO pour Windows 2000 ». Ce composant est déjà inclus dans votre installation VBA dans Word ou Excel et il est prêt à l`emploi.

Video: formation Excel VBA. Envoyer automatiquement un fichier Excel par mail depuis Excel

Utilisation du composant permet d`envoyer des e-mails à partir de produits Windows avec VBA extrêmement facile. Dans cet exemple, je vais utiliser le composant CDO dans Excel pour envoyer un e-mail qui fournira les résultats d`une cellule Excel spécifique.

La première étape est d`aller à la «Développeur» Onglet de menu, cliquez sur «Insérer» Dans la zone Contrôles, puis sélectionnez un bouton de commande. Dessiner dans la feuille, puis créer une nouvelle macro pour elle.

email à partir d`Excel

Lorsque Excel ouvre l`éditeur VBA, vous allez avoir besoin d`ajouter la référence à la bibliothèque CDO. Vous pouvez y accéder dans le menu Outils, puis faites défiler la liste jusqu`à ce que vous trouverez «CDO Microsoft pour Windows 2000 Library« . Cochez la case et cliquez sur OK.

envoyez un courriel à partir d`Excel

Maintenant, vous êtes prêt à utiliser CDO pour émettre des e-mails à l`intérieur Excel. Pour ce faire, vous devez d`abord créer les objets ot de courrier et de mettre en place tous les champs qui seront nécessaires pour l`envoi de l`e-mail. Gardez à l`esprit que, si la plupart des champs sont facultatifs, les champs De et sont obligatoires.

Dim CDO_Mail Comme ObjectDim CDO_Config Comme ObjectDim SMTP_Config Comme VariantDim strSubject comme StringDim strFrom comme StringDim strTo comme StringDim strCc comme StringDim strBcc comme StringDim strBody Comme StringstrSubject = "Les 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))

Ce qui est cool à ce sujet est que vous construisez une toute chaîne que vous souhaitez personnaliser un message e-mail complète et l`affecter à la variable strBody. Assemblez les composants du message en utilisant le «&» Chaîne à insérer des données de l`une des feuilles Excel directement dans le message, comme je l`ai montré ci-dessus.

La section suivante du code est où vous allez configurer CDO pour utiliser un serveur SMTP externe que vous souhaitez utiliser. Dans ce cas, je ne ai pas besoin d`utiliser SSL parce que mon serveur SMTP ne nécessite pas. CDO est capable de SSL, mais qui est en dehors de la portée de cet article. Si vous devez utiliser SSL, je recommande fortement writeup génial de Paul Sadowski sur l`utilisation de CDO.

Set CDO_Mail = CreateObject ("CDO.Message") On Error GoTo Error_HandlingSet CDO_Config = CreateObject ("CDO.Configuration") CDO_Config.Load -1Set SMTP_Config = CDO_Config.FieldsWith SMTP_Config.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.metrocast.net".Article("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25.UpdateEnd WithWith CDO_MailSet .configuration = CDO_ConfigEnd Avec

Maintenant que vous avez configuré la connexion au serveur SMTP pour l`envoi de l`e-mail, tout ce que vous avez à faire est de remplir les champs appropriés pour l`objet CDO_Mail et exécutez la commande Envoyer. Voici comment faire.

CDO_Mail.Subject = strSubjectCDO_Mail.From = strFromCDO_Mail.To = strToCDO_Mail.TextBody = strBodyCDO_Mail.CC = strCcCDO_Mail.BCC = strBccCDO_Mail.SendError_Handling: Si Err.Description lt; gt; - Then MsgBox Err.Description

Donc là vous l`avez. Il n`y aura pas toutes les boîtes de pop-up ou des messages d`alerte de sécurité, ce qui peut se produire lorsque vous avez recours à l`utilisation de l`objet de messagerie Outlook. CDO met simplement ensemble le courrier électronique et utilise vos informations de connexion du serveur SMTP pour déclencher le message. Il est probablement le moyen le plus facile je sais d`intégrer email dans des scripts Word ou Excel VBA.

Voici ce que le message ressemblait que j`ai reçu dans ma boîte de réception.

email à partir d`Excel

Pas de problème - seulement les données directement à partir de l`intérieur de la feuille Excel livrés directement à mon compte e-mail. Si vous êtes créatif avec la façon dont vous mettez ensemble la variable de chaîne de corps avec toutes sortes de données de votre feuille Excel, vous pouvez imaginer les rapports de messagerie automatisés frais que vous pourriez mettre ensemble. Et si vous ne voulez pas utiliser un bouton de commande, ont juste le script exécuté sur la feuille ou de l`application événement close.

Pouvez-vous imaginer des utilisations cool pour CDO dans vos propres Excel, Access, ou des projets de Word? Partagez vos pensées et idées dans la section commentaires ci-dessous.

Articles connexes