VBA Envoyer des e-mails depuis Excel via Gmail

Ce tutoriel vous montrera comment envoyer des e-mails depuis Excel via Gmail en utilisant VBA.

Ajout de la référence Microsoft CDO

Pour permettre à Excel d'envoyer des e-mails via Gmail, vous devez d'abord ajouter la bibliothèque de référence CDO à votre projet Excel.

Dans l'éditeur VBA, cliquez sur Outils, Références.

Recherchez la référence Microsoft CDO, puis cliquez sur OK.

Envoi d'un e-mail via GMail

Pour envoyer un e-mail depuis Excel via Gmail, vous devez d'abord déclarer un objet CDO (Dim gMail en tant que CDO.Message).

Deuxièmement, vous devrez configurer l'authentification SSL pour votre message dans votre code. Cela signifie que vous devez définir le serveur SMTP et les détails du port pour que votre courrier électronique passe correctement, ainsi que configurer votre nom d'utilisateur et votre mot de passe.

Dans l'extrait de code ci-dessous, c'est ce dont vous auriez besoin au début de votre fonction Excel. Vous avez besoin d'un destinataire de l'e-mail (strTo) et d'un objet (strSubject), mais le CC et le corps de l'e-mail peuvent être des variables facultatives.

12345678910111213141516171819202122232425262728 Fonction CreateEmail (strTo As String, strSubject As String, optionnel strCC As String, optionnel strBody As String)'créer un objet CDODim gMail en tant que CDO.MessageDéfinir gMail = Nouveau CDO.Message'Activer l'authentification SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Vrai'Activer l'authentification SMTP=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Définir le serveur SMTP et le port DétailsgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Définissez votre nom d'utilisateur et votre mot de passe pour votre propre compte Gmail icigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Mettre à jour les champs de configurationgMail.Configuration.Fields.Update

Une fois cela fait, vous pouvez créer votre email et compléter la fonction.

123456789 'définir les propriétés de l'e-mail et le fichier à envoyerAvec gMail .Subject = "Écrire le sujet ici".From = "[email protected]".To = strTo.TextBody = strBodyTerminer par'envoyer le courriergMail.EnvoyerFonction de fin

Vous pouvez ensuite appeler votre fonction avec le code suivant

1234567 Sous envoyerEmail'créer le corps de l'e-mailDim strText en tant que chaînestrText = "Bonjour. J'espère que vous allez bien - ceci est un e-mail de test"'remplir les arguments de la fonction - laissez CC vide donc mettez une virgule comme espace réservéCreateEmail("[email protected]", "Test Email", , strText)Fin sous

Envoi d'un classeur via GMail

Pour envoyer un classeur en pièce jointe via GMail, vous pouvez créer une fonction similaire à celle ci-dessus avec quelques ajouts.

Vous devez ajouter du code pour sélectionner le classeur, puis vous devez joindre le fichier sélectionné à l'e-mail.

Nous utiliserons Microsoft Office FichierDialogue pour sélectionner le fichier à envoyer, puis utilisez la Ajouter une pièce jointe propriété de l'e-mail pour ajouter le fichier en pièce jointe.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Fonction SendWorkbook (strTo As String, strSubject As String, Optionnel strCC As String, Optionnel strBody As String) As BooleanEn cas d'erreur goto hein :'créer un objet CDODim gMail en tant que CDO.MessageDéfinir gMail = Nouveau CDO.Message'Activer l'authentification SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Vrai'Activer l'authentification SMTP=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Définir le serveur SMTP et les détails du portgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Définissez votre nom d'utilisateur et votre mot de passe pour votre propre compte Gmail icigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Mettre à jour les champs de configurationgMail.Configuration.Fields.Update'sélectionnez le fichier à envoyer avec la boîte de dialogue de fichier MicrosoftDim strFileToSend As StringDim dlgFile As FileDialogDim strItem comme varianteDim nDlgResult aussi longtempsDéfinir dlgFile = Application.FileDialog (msoFileDialogFilePicker)'filtre pour les fichiers excel et csv uniquementdlgFile.Filters.Add "Fichiers Excel", "*.csv; *.xls; *.xlsx; *.xlsm"nDlgResult = dlgFile.AfficherSi nDlgRésultat = -1 AlorsSi dlgFile.SelectedItems.Count > 0 AlorsPour chaque strItem dans dlgFile.SelectedItemsstrFileToEnvoyer = strItemÉlément suivantFin siFin si'définir les propriétés de l'e-mail et le fichier à envoyerAvec gMail.Subject = "Ecrire le sujet ici".From = "[email protected]".To = strTo.TextBody = strBody'ajouter le fichier sélectionné en pièce jointe.AddAttachment strFileToSendTerminer par'envoyer le courriergMail.EnvoyerSendWorkbook= TrueFonction de sortieeuh :SendWorkbook = FalseFonction de fin

Si le port de configuration 25 ne fonctionne pas, vous pouvez obtenir une erreur - "Le transport n'a pas réussi à se connecter au serveur" Remplacez le port par 25 et réessayez.

La fonction ci-dessus peut être appelée en utilisant la procédure ci-dessous.

123456789101112131415 Sous SendMail()Dim strTo As StringDim strSubject As StringDim strBody en tant que chaîne'remplir les variablesstrTo = "[email protected]"strSubject = "Veuillez trouver le dossier financier en pièce jointe"strBody = "du texte va ici pour le corps de l'e-mail"'Appelez la fonction pour envoyer l'e-mailSi SendWorkbook(strTo, strSubject, , strBody) = true alorsMsgbox "Création d'email réussie"AutreMsgbox "La création de l'e-mail a échoué !"Fin siFin du sous-marin

Il vous sera demandé de sélectionner le fichier que vous souhaitez envoyer. Ce code est limité aux fichiers Excel en raison du filtre « *.csv; *.xls; *.xlsx; *.xlsm" - cependant, vous pouvez également utiliser ce code dans Word et modifier votre filtre en conséquence.

Sélectionnez le fichier et cliquez sur Ouvrir. Le code peut prendre du temps à s'exécuter - si votre courrier est envoyé avec succès, vous obtiendrez le message suivant.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave