L'utilisation de scripts VBA dans Excel ne nécessite aucune connaissance en programmation. VBA vous aide à effectuer de nombreuses tâches avancées telles que la création d'un rapport de feuille de calcul contenant toutes les informations du PC, l'envoi de courriels directement à partir d'une feuille de calcul ...
Pour envoyer des e-mails à partir de Microsoft Excel, il vous suffit de quelques scripts simples. N'ayez pas peur d'ajouter cette fonctionnalité à votre feuille de calcul si vous voulez vraiment tirer le meilleur parti du logiciel de bureau Excel.
Courriel d'Excel
Il existe de nombreuses raisons pour lesquelles vous souhaitez envoyer des e-mails directement sur Microsoft Excel. Par exemple, vos employés mettent à jour les documents et les feuilles de calcul chaque semaine et vous souhaitez recevoir des notifications par e-mail lorsque cette action est terminée ou parfois, vous souhaitez envoyer par e-mail tous les contacts du même classeur. à ...
Vous devez avoir pensé à utiliser un script de messagerie Excel compliqué, mais c'est en fait très simple. Cet article vous guidera pour tirer parti d'une fonctionnalité qui est disponible depuis longtemps dans Excel VBA, appelée Collaboration Data Objects (CDO) .

CDO est un composant de messagerie utilisé dans Windows dès les premières versions. Il s'appelait autrefois CDONTS. Après la naissance de Windows 2000 et XP, "CDO pour Windows 2000" l'a remplacé. Ce composant est inclus dans l'installation VBA dans Microsoft Word ou Excel et peut être utilisé à tout moment.
L'utilisation de ce composant pour envoyer des courriels dans des produits Windows avec VBA est extrêmement facile. Par exemple, cet article utilise CDO dans Excel pour envoyer des e-mails contenant des résultats dans une cellule.
Étape 1: créer une macro VBA
Tout d'abord, accédez à l'onglet Développeur Excel > cliquez sur Insérer dans le panneau Contrôles , puis sélectionnez un bouton de commande.

Faites-le glisser dans cette feuille de calcul, puis créez une nouvelle macro en cliquant sur Macros dans le ruban Développeur.

Lorsque vous cliquez sur le bouton Créer , il ouvre l'éditeur VBA.
Ajoutez une référence à la bibliothèque CDO en accédant à Outils> Références dans l'éditeur.

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

Lorsque vous cliquez sur OK , notez le nom de la fonction dans laquelle le script est collé, car vous en aurez besoin ultérieurement.
Étape 2: définissez les champs CDO «De» et «À»
Pour ce faire, vous devez d'abord créer des objets liés aux e-mails et configurer tous les champs de remise des e-mails requis.
N'oubliez pas que de nombreux champs peuvent ou non, mais De et To 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:" & Str (Sheet1 .Cellules (2, 1))
La chose intéressante est que vous pouvez créer n'importe quelle chaîne souhaitée pour personnaliser l'intégralité du message électronique et lui affecter la variable strBody.
Regrouper le contenu d'un e-mail à l'aide d'une chaîne et insérer des données à partir de n'importe quelle feuille de calcul Microsoft Excel directement dans un e-mail (comme illustré ci-dessus).
Étape 3: configurer CDO pour utiliser SMTP externe
Le morceau de code suivant est l'endroit où vous configurez CDO pour utiliser n'importe quel serveur SMTP externe pour envoyer des e-mails.
Cet exemple ne configure pas SSL via Gmail, CDO peut remplacer SSL mais il sort du cadre de cet article. Si vous devez utiliser SSL, le code avancé de Github peut vous aider.
Set CDO_Mail = CreateObject ("CDO.Message")
On Error GoTo Error_Handling
Set 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 ") =" password "
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = True
.Update
End With
Avec CDO_Mail
Set .Configuration = CDO_Config
End With
Étape 4: configuration complète de CDO
Vous avez maintenant configuré votre serveur SMTP pour envoyer des e-mails. Il vous suffit de remplir les champs appropriés pour l' objet CDO_Mail et d'émettre la commande Send .
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
Aucune des fenêtres contextuelles ou alertes de sécurité n'apparaît comme vous le voyez habituellement lorsque vous utilisez l'objet de messagerie Outlook.
CDO met simplement les composants de messagerie côte à côte et utilise les détails de connexion du serveur pour permettre l'envoi d'informations. C'est le moyen le plus simple de combiner des e-mails dans des scripts VBA Microsoft Word ou Excel.
Pour connecter le bouton de commande à ce script, accédez à l'éditeur de code et cliquez sur Sheet1 pour voir le code VBA de cette feuille de calcul.
Tapez le nom de la fonction où vous avez collé le script ci-dessus.

Ce sont les informations que vous recevez dans la boîte de réception.

Remarque : Si vous obtenez le message d'erreur 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 la ligne de code répertoriée sous Avec SMTP_Config .
Améliorez et automatisez l'ensemble du processus
L'envoi d'e-mails depuis Excel avec un seul bouton est vraiment sûr et pratique. Si vous souhaitez utiliser cette fonctionnalité souvent, vous pouvez l'automatiser.
Pour ce faire, vous devez modifier la macro. Accédez à Visual Basic Editor, copiez et collez le code entier rassemblé. Ensuite, sélectionnez ThisWorkbook dans la hiérarchie du projet .
Dans les deux champs déroulants en haut de la fenêtre de code, sélectionnez Classeur et cliquez sur Ouvrir dans le menu Méthodes . Collez le script de messagerie ci-dessus dans Private Sub Workbook_Open () . Cette action exécutera la macro chaque fois que vous ouvrirez le fichier Excel.

Ensuite, ouvrez le Planificateur de tâches . Vous utiliserez cet outil pour demander à Windows d'ouvrir automatiquement des feuilles de calcul à des intervalles spécifiés. À ce moment, votre macro sera activée et envoyée par e-mail.

Sélectionnez Créer une tâche de base ... dans le menu Action et suivez les instructions jusqu'à atteindre l'écran Action.
Sélectionnez Démarrer un programme et cliquez sur Suivant .

Utilisez le bouton Parcourir pour trouver l'emplacement Microsoft Excel sur l'ordinateur ou copiez et collez le chemin dans le champ Programme / script .
Entrez ensuite le chemin d'accès au document Microsoft Excel dans le champ Ajouter des arguments .
Les instructions complètes et le calendrier vous seront faits.
Vous devez tester cette fonctionnalité en planifiant l'action dans les prochaines minutes, puis en révisant la tâche après l'avoir vue fonctionner efficacement.
Remarque : vous devrez peut-être ajuster les paramètres du Centre de gestion de la confidentialité pour vous assurer que la macro s'exécute comme suit:
Ouvrez la feuille de calcul et accédez à Fichier> Options> Trust Center .
Ici, cliquez sur Paramètres du Trust Center . Sur l'écran suivant, sélectionnez Ne jamais afficher d'informations sur le contenu bloqué .
Microsoft Excel est un outil extrêmement puissant, mais apprendre à l'utiliser peut parfois être difficile pour beaucoup. Si vous voulez maîtriser ce logiciel, vous devez savoir comment utiliser VBA. Ce n'est pas facile.
Cependant, avec un peu d'expérience VBA, vous pouvez automatiser les tâches de base sur Microsoft Excel et consacrer plus de temps aux tâches plus importantes.
J'espère que l'article vous sera utile. Je vous souhaite du succès!