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

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 pouvez vraiment améliorer ce que vous pouvez accomplir dans Excel.





Nous avons couvert de nombreuses 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 tutoriel sous forme de vidéo ? Nous avons ce qu'il vous faut!





Pourquoi envoyer un e-mail à partir d'Excel ?

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

Peut-être avez-vous du personnel qui met à jour les documents ou les feuilles de calcul chaque semaine, et vous aimeriez 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 à la fois.



Vous pensez probablement que le script d'un e-mail diffusé à partir d'Excel va être compliqué. Ce n'est pas du tout le cas.

La technique de cet article utilisera une fonctionnalité disponible dans Excel VBA depuis longtemps, 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 auparavant 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 l'envoi d'e-mails à partir de produits Windows avec VBA extrêmement facile. 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 à aller dans 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.

Dessinez-le dans la feuille, puis créez une nouvelle macro en cliquant sur Macro 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 > Les références dans l'éditeur.

Faites défiler la liste jusqu'à ce que vous trouviez Bibliothèque Microsoft CDO pour Windows 2000 . Cochez la case et cliquez sur d'accord .

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

Étape 2 : Configurez les champs CDO « De » et « À »

Pour ce faire, vous devez d'abord créer les objets courrier 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 De et À les champs sont obligatoires.

comment activer le bluetooth sur mac
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 = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & 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 personnaliser un message électronique complet et l'attribuer au strCorps variable.

Rassemblez les éléments du message en utilisant le & chaîne pour insérer les données de l'une des feuilles Microsoft Excel directement dans le message électronique, comme indiqué ci-dessus.

Étape 3 : Configurer CDO pour utiliser un SMTP externe

La section suivante du code est l'endroit où vous configurerez 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 devez utiliser SSL, cette code avancé dans Github peut aider.

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With 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@website.com'
.Item('http://schemas.microsoft.com/cdo/configuration/sendpassword') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Étape 4 : Finaliser la configuration du CDO

Maintenant que vous avez configuré la connexion au serveur SMTP pour l'envoi de l'e-mail, il ne vous reste plus qu'à remplir les champs appropriés pour le Objet CDO_Mail , et émettre le Envoyer commander.

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.Send
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

Il n'y aura pas de fenêtres contextuelles ni de messages d'alerte de sécurité, ce qui peut se produire 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 lancer 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.

jeux qui ne nécessitent pas de données

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

Noter : Si vous recevez une erreur qui lit Le transport n'a pas réussi à se connecter au serveur , assurez-vous d'avoir 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

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

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

Ensuite, sélectionnez Ce classeur du Projet hiérarchie.

Dans les deux champs déroulants en haut de la fenêtre de code, sélectionnez Cahier d'exercices et sélectionnez Ouvert dans la liste déroulante Méthodes.

Collez le script d'e-mail ci-dessus dans Sous-classeur privé_Open() .

Cela exécutera la macro chaque fois que vous ouvrirez 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, moment auquel votre macro sera lancée, en envoyant l'e-mail.

Sélectionner Créer une tâche de base... du action menu et parcourez l'assistant jusqu'à ce que vous atteigniez le action filtrer.

Sélectionner Démarrer un programme et cliquez Prochain .

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

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

Terminez l'assistant et votre planification sera en place.

Cela vaut la peine d'effectuer un test en planifiant l'action pour quelques minutes dans le futur, puis en modifiant la tâche une fois que vous pouvez confirmer qu'elle fonctionne.

Noter : Vous devrez peut-être ajuster vos paramètres de Trust Center pour vous assurer que la macro s'exécute correctement.

Pour ce faire, ouvrez la feuille de calcul et accédez à Déposer > 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 devrez être à l'aise avec VBA , et ce n'est pas une mince tâche.

meilleure distribution Linux pour les nouveaux utilisateurs

Cependant, les résultats parlent d'eux-mêmes. Avec un peu d'expérience VBA à votre actif, vous pourrez bientôt faire en sorte que Microsoft Excel effectue 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 développer une expertise avec VBA, mais vous verrez bientôt les fruits de votre travail si vous pouvez vous y tenir.

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

Partager Partager Tweeter E-mail Canon vs Nikon : quelle marque d'appareil photo est la meilleure ?

Canon et Nikon sont les deux plus grands noms de l'industrie de l'appareil photo. Mais quelle marque propose la meilleure gamme d'appareils photo et d'objectifs ?

Lire la suite
Rubriques connexes
  • Productivité
  • La programmation
  • Conseils sur les e-mails
  • La programmation
  • Programmation Visual Basic
  • Microsoft Excel
  • Conseils Microsoft Office
A propos de l'auteur Ryan Dubé(942 articles publiés)

Ryan est titulaire d'un baccalauréat en génie électrique. Il a travaillé 13 ans dans l'ingénierie d'automatisation, 5 ans dans l'informatique, et est maintenant ingénieur d'applications. Ancien rédacteur en chef de MakeUseOf, il a pris la parole lors de conférences nationales sur la visualisation des données et a été présenté à la télévision et à la radio nationales.

Plus de Ryan Dube

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner