FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment envoyer des e-mails à partir d'une feuille de calcul Excel à l'aide de scripts VBA

Pour envoyer des e-mails à partir de Microsoft Excel, il suffit de quelques scripts simples. Ajoutez cette fonctionnalité à vos feuilles de calcul et vous pourrez vraiment améliorer tout ce que vous pouvez accomplir dans Excel.

Nous avons couvert de nombreuses excellentes macros Excel, qui peuvent accomplir les mêmes choses que les scripts VBA, mais sans avoir besoin de connaissances en programmation. Mais il y a beaucoup de 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 didacticiel sous forme de vidéo ? Nous avons ce qu'il vous faut !

Pourquoi envoyer un e-mail depuis Excel ?

Il existe de nombreuses raisons pour lesquelles vous pourriez souhaiter envoyer un e-mail depuis Microsoft Excel.

Peut-être avez-vous du personnel qui met à jour des documents ou des feuilles de calcul sur une base hebdomadaire, et vous souhaitez recevoir une notification par e-mail lorsque ces mises à jour sont effectuées. Ou vous pouvez avoir une feuille de calcul de contacts et vous souhaitez envoyer un e-mail à tous en même temps.

Vous pensez probablement que la scénarisation d'un e-mail diffusé depuis Excel va être compliquée. Ce n'est pas du tout le cas.

La technique décrite dans cet article utilisera une fonctionnalité disponible depuis longtemps dans Excel VBA, Collaboration Data Objects (CDO).

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

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 autrefois 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 Microsoft Word ou Excel et est prêt à l'emploi.

L'utilisation du composant rend extrêmement facile l'envoi d'e-mails depuis les produits Windows avec VBA. Dans cet exemple, vous utiliserez le composant CDO dans Excel pour envoyer un e-mail qui fournira 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 zone Contrôles, puis sélectionnez un bouton de commande.

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

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

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Lorsque vous cliquez sur 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.

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Faites défiler la liste jusqu'à ce que vous trouviez Microsoft CDO for Windows 2000 Library . Cochez la case et cliquez sur OK .

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Lorsque vous cliquez sur OK , notez le nom de la fonction dans laquelle vous collez le script. Vous en aurez besoin plus tard.

Étape 2 :Configurer les champs CDO "From" et "To"

Pour ce faire, vous devez d'abord créer les objets de messagerie et configurer tous les champs nécessaires à l'envoi de l'e-mail.

Gardez à l'esprit que bien que de nombreux champs soient facultatifs, le champ De et À champs sont obligatoires.

Dim CDO_Mail As Object 
Dim CDO_Config en tant qu'objet
Dim SMTP_Config en tant que variante
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 :" &Str(Sheet1.Cells(2, 1))

La chose intéressante à ce sujet est que vous pouvez créer n'importe quelle chaîne que vous souhaitez pour personnaliser un message électronique complet et l'attribuer au strBody variables.

Rassemblez les composants du message en utilisant le & chaîne pour insérer des données de n'importe quelle feuille Microsoft Excel directement dans le message électronique, comme indiqué ci-dessus.

Étape 3 :Configurer CDO pour utiliser un SMTP externe

La prochaine section de code est l'endroit où vous allez configurer CDO pour utiliser n'importe quel serveur SMTP externe pour envoyer l'e-mail.

Cet exemple est une configuration non SSL via Gmail. CDO est capable de SSL, mais cela sort du cadre de cet article. Si vous avez besoin d'utiliser SSL, ce code avancé dans Github peut vous aider.

Définir CDO_Mail =CreateObject("CDO.Message") 
En cas d'erreur GoTo Error_Handling
Définir CDO_Config =CreateObject("CDO.Configuration")
CDO_Config.Load -1
Définissez 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") =Vrai
.Mettre à jour
Terminer par
Avec CDO_Mail
Définir .Configuration =CDO_Config
Finir par

Étape 4 :Finaliser la configuration du CDO

Maintenant que vous avez configuré la connexion au serveur SMTP pour l'envoi de l'email, il ne vous reste plus qu'à remplir les champs appropriés pour l'objet CDO_Mail , et lancez la commande Envoyer commande.

Voici comment procéder :

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.Envoyer
La gestion des erreurs:
Si Err.Description <> "" Alors MsgBox Err.Description

Il n'y aura pas de fenêtres contextuelles ni de messages d'alerte de sécurité, ce qui peut arriver lorsque vous utilisez l'objet de messagerie Outlook.

CDO rassemble simplement l'e-mail et utilise les détails de connexion de votre serveur SMTP pour envoyer le message. C'est le moyen le plus simple d'intégrer des e-mails dans des scripts Microsoft Word ou Excel VBA.

Pour connecter votre bouton de commande à ce script, allez dans l'éditeur de code et cliquez sur Feuille1 pour afficher le code VBA de cette feuille de calcul.

Tapez le nom de la fonction où vous avez collé le script ci-dessus.

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

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

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Remarque  :Si vous recevez une erreur indiquant Le transport n'a pas réussi à se connecter au serveur , assurez-vous d'avoir saisi 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 sous With SMTP_Config .

Aller plus loin et automatiser l'ensemble du processus

C'est bien beau de pouvoir envoyer des e-mails à partir d'Excel en appuyant simplement sur un bouton. Cependant, vous souhaiterez peut-être utiliser cette fonctionnalité de manière régulière, auquel cas il serait judicieux d'automatiser le processus.

Pour ce faire, vous devrez modifier la macro. Dirigez-vous vers Visual Basic Editor et copiez et collez l'intégralité du code que nous avons assemblé.

Ensuite, sélectionnez ThisWorkbook du Projet hiérarchie.

Dans les deux champs déroulants en haut de la fenêtre de code, sélectionnez Classeur et sélectionnez Ouvrir dans le menu déroulant Méthodes.

Collez le script d'e-mail ci-dessus dans Private Sub Workbook_Open() .

Cela exécutera la macro chaque fois que vous ouvrirez le fichier Excel.

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Ensuite, ouvrez le planificateur de tâches .

Vous allez utiliser cet outil pour demander à Windows d'ouvrir automatiquement la feuille de calcul à intervalles réguliers, à quel point votre macro sera lancée, en envoyant l'e-mail.

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Sélectionnez Créer une tâche de base... de l'Action menu et parcourez l'assistant jusqu'à ce que vous atteigniez l'Action écran.

Sélectionnez Démarrer un programme et cliquez sur Suivant .

Comment envoyer des e-mails à partir d une feuille de calcul Excel à l aide de scripts VBA

Utilisez le Parcourir pour trouver l'emplacement de Microsoft Excel sur votre ordinateur, ou copiez et collez le chemin dans le Programme/script champ.

Ensuite, entrez le chemin d'accès à votre document Microsoft Excel dans le champ Ajouter des arguments champ.

Terminez l'assistant et votre planification sera en place.

Cela vaut la peine d'exécuter un test en planifiant l'action pour quelques minutes à l'avenir, puis en modifiant la tâche une fois que vous pouvez confirmer qu'elle fonctionne.

Remarque  :Vous devrez peut-être ajuster les paramètres de votre centre de gestion de la confidentialité pour vous assurer que la macro s'exécute correctement.

Pour ce faire, ouvrez la feuille de calcul et accédez à Fichier> Options> Centre de confiance .

À partir de là, cliquez sur 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 devrez être à l'aise avec VBA, et ce n'est pas une mince affaire.

Cependant, les résultats parlent d'eux-mêmes. Avec une petite expérience VBA à votre actif, vous pourrez bientôt faire en sorte que Microsoft Excel exécute automatiquement des tâches de base, ce qui vous laissera plus de temps pour vous concentrer sur des questions plus urgentes.

Il faut du temps pour acquérir une expertise avec VBA, mais vous verrez bientôt les fruits de votre travail si vous pouvez vous y tenir.

Un excellent point de départ est notre didacticiel faisant autorité sur l'utilisation de VBA dans Excel. Une fois que vous avez terminé, ce simple script pour envoyer des e-mails à partir d'Excel deviendra un jeu d'enfant.


[]