Plusieurs usagers demandent, sur notre forum, comment envoyer un courriel à l’aide de VBA depuis Excel. L’article suivant sert donc à démystifier cette tâche et plus précisément, à vous proposer une procédure en VBA, dans Excel, qui permet d’envoyer un courriel, via MS Outlook.
Envoyer un courriel depuis Excel
Premièrement, il y a deux façons de faire, la première, encouragée par Microsoft, utilise ce qu’ils appellent le ‘’Early Binding’’. Cette approche utilise en fait la librairie de fonctions et de paramètres de MS Outlook directement dans l’environnement VBA de Excel. Même si cette approche est un peu plus simple, nous croyons qu’elle n’est pas la plus stable. En conséquence, nous proposons plutôt l’approche du ‘’Late Binding’’, ce qui implique que nous devons définir les objets liés au courriel nous-mêmes, sans utiliser de librairies prédéfinies.
Alors, lançons-nous dans la programmation en regardant la procédure ci-jointe, qui est commentée afin d’en faciliter l’utilisation.
Option Explicit Sub EnvoiCourriel() Dim applOL As Object Dim miOL As Object Dim recptOL As Object Dim strMail As String, strFileName as String Dim strObjet as String strFileName = "FilePath" & "\" & "FileName" & ".pdf" ' Le nom complet du fichier (chemin + nom + extension) strObjet = "Sujet du courriel" Set applOL = CreateObject("Outlook.Application") Set miOL = applOL.CreateItem(0) ' Cette commande peut être répétée afin d’ajouter plusieurs destinataires Set recptOL = miOL.Recipients.Add("Courriel du destinataire 1") Set recptOL = miOL.Recipients.Add("Courriel du destinataire 2") recptOL.Type = 1 ' Signifie que le courriel est directement adressé à ces destinataires With miOL .to = "Destinataires qui seront affichés dans le courriel" .Subject = strObjet .SentOnBehalfOfName = "adresse alternative de la vôtre, si requis" ' Optionnelle .replyrecipients.Add ("adresse de retour si un des destinataires répond") ' Optionnelle, sinon les réponses seront acheminés à la boîte d’envoi .Body = "Texte du courriel" 'ou .htmlBody = "Texte du courriel, mais écrit en html" .Attachments.Add (strFileName) ' Optionnelle, mais permet de joindre un ou des fichier(s) au courriel, car cette commande peut être répétée ' Préférable d’identifier de quelle boîte de courriel le courriel va partir Set .SendUsingAccount = applOL.Session.Accounts.Item(1) .Display ' Ouvre et montre le courriel sans l’envoyer, ou .Send ' Envoie le courriel End With Set applOL = Nothing Set miOL = Nothing Set recptOL = Nothing End Sub
Comme on peut le voir, une fois qu’on sait comment programmer les objets pertinents, il est assez facile d’utiliser VBA dans Excel pour transmettre des courriels.
Vous souhaitez créer et personnaliser des outils de gestion automatisés dans Excel pour mieux répondre aux besoins spécifiques de votre entreprise ? Apprenez à les développer et les présenter avec des interfaces conviviales pour les usagers en suivant nos formations en programmation de macros VBA. |
---|
Outils d’envoi de courriels de masse
Si vous souhaitez vous procurer un outil Excel qui vous permet de faire l’envoi de masse de courriels, avec messages personnalisés et pièces jointes, vous pouvez consulter les outils Excel de la boutique en ligne du CFO masqué, et plus particulièrement l’outil Envoi de courriels de masse.
Formations Excel – VBA
Si vous souhaitez apprendre à programmer en langage VBA dans Excel, veuillez jetez un coup d’oeil à nos formations :
Voici la liste des formations proposées en programmation de macros VBA dans Excel :
Découvrez également nos différents parcours d'apprentissage et notre programme de crédits.
Voici quelques commentaires d’apprenants ayant suivi la formation Excel – VBA (niveau 1) :