XL 2016 [VBA] Envoie mail avec Outlook

SkinDash

XLDnaute Nouveau
Bonjour,

Je ne suis pas totalement débutant en VBA, cependant je n'ai jamais travailler une feuille Excel pour importer des infos dans Outlook.

Je cherche à créer un mail en brouillon Outlook, à partir de l'Excel en pièce jointe.

Sur la feuille "Liste de diffusion" j'ai la liste des destinataires qui peut être variable d'un jour à l'autre, il y aura plus ou moins de contacts. Ils seront tous ajoutés à la suite les uns des autres dans la colonne A.

L'objet du mail sera toujours en B2, c'est une cellule qui sera renseignée à la main.

Pour la feuille "Corps du mail", il s'agit... du corps du mail :) C'est un tableau qui sera d'un jour a l'autre plus ou moins large (en terme de nombre de colonne, il faudrait pouvoir ajouter un check de la largeur du tableau, en sachant que les en-têtes seront toujours sur la ligne 1), le nombre de ligne sera aussi variable d'un jour à l'autre.

Je débute en terme de VBA + Outlook, du coup je ne sais pas du tout comment commencer, merci par avance pour votre coup de main.

Bon week-end :)

Ps: je travaille sous Excel 2016.
 

Pièces jointes

  • Classeur1.xlsm
    20.2 KB · Affichages: 100

Lone-wolf

XLDnaute Barbatruc
Bonjour SkinDash

Mois c'est Dash(la lessive) tout court. :D Tu ne peux pas envoyer le message en PJ puisqu'il faut d'abord le sauvegarder. Et qu'elle est l'utilité d'envoyer en PJ le message du message que tu envois??? :rolleyes:

Ton fichier en retour.
 

Pièces jointes

  • Classeur-mails.xlsm
    25.5 KB · Affichages: 115
Dernière édition:

SkinDash

XLDnaute Nouveau
Bonjour SkinDash

Mois c'est Dash(la lessive) tout court. :D Tu ne peux pas envoyer le message en PJ puisqu'il faut d'abord le sauvegarder. Et qu'elle est l'utilité d'envoyer en PJ le message du message que tu envois??? :rolleyes:

Ton fichier en retour.

Hello ! Merci pour cette réponse éclaire ! Je suis bluffé ! :eek:

Tout fonctionne très bien chez moi, j'ai juste inversé le "to" avec le "BCC":

.To = Mid(AdrBcc, 1, Len(AdrBcc) - 1)
.BCC = Auteur

le 'Mid' correspond bien aux personnes à qui je souhaite shooter le mail; dans Auteur je mets mon propre mail afin d'être en copie.

Tu as mal lu, je souhaite enregistrer le message en Brouillon (et non l'envoyer en pièce jointe évidemment ! :p) ; comme il s'agit de mail un peu sensible, même si une macro me fait la mise en forme, je souhaite pouvoir le relire avant d'envoyer pour être sûr qu'il n'y ait pas d'erreur. C'est pour cette raison que je souhaite enregistrer le mail en Brouillon, pour pouvoir ensuite le shooter moi-même.

Merci pour ton aide précieuse en tout cas ! Je vais prendre le temps de décortiquer le code et je reviendrai surement te poser deux trois questions si jamais je ne comprends pas certaines parties ;)

edit:

par exemple je n'avais jamais utiliser ce genre de code:

strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "<TABLE BORDER>"

Je suppose que c'est uniquement des lignes HTML de mise en forme, pour mettre en forme le corps du mail ?
 

Lone-wolf

XLDnaute Barbatruc
Bonjour SkinDash

C'est tout à fait ça. En ce qui concerne le brouillon, nul besoin de le sauvegarder, vu que j'ai mit .Display. Tu visualise et ensuite tu envois. Et je viens de refaire le fichier avec envois de la feuille Corps du mail en pièce jointe, au cas où. Si tu l'utilise, veille à modifier son chemin, par exemple: Chemin = "C:\SkinDash\Envois Fichiers\".

Edit: pour le brouillon outlook dans ce cas si tu insiste, il faut faire une 2ème macro. Une pour la sauvegarde, l'autre pour l'envois. Tu ne peux pas envoyer le brouillon directement.

Edit2: j'ai ajouté un 2ème dossier pour la sauvegarde des messages.
 

Pièces jointes

  • SkinDash.zip
    46.5 KB · Affichages: 105
Dernière édition:

SkinDash

XLDnaute Nouveau
Bonjour SkinDash

C'est tout à fait ça. En ce qui concerne le brouillon, nul besoin de le sauvegarder, vu que j'ai mit .Display. Tu visualise et ensuite tu envois. Et je viens de refaire le fichier avec envois de la feuille Corps du mail en pièce jointe, au cas où. Si tu l'utilise, veille à modifier son chemin, par exemple: Chemin = "C:\SkinDash\Envois Fichiers\".

Edit: pour le brouillon outlook dans ce cas si tu insiste, il faut faire une 2ème macro. Une pour la sauvegarde, l'autre pour l'envois. Tu ne peux pas envoyer le brouillon directement.

Edit2: j'ai ajouté un 2ème dossier pour la sauvegarde des messages.


Hello,

Merci beaucoup pour ton temps, c'est vraiment top !

Effectivement le '.Display' suffisait largement ;) !

Je reviens vers toi si jamais j'ai des questions subsidiaires.

Merci encore,

Skin'
 

SkinDash

XLDnaute Nouveau
Bonjour SkinDash

C'est tout à fait ça. En ce qui concerne le brouillon, nul besoin de le sauvegarder, vu que j'ai mit .Display. Tu visualise et ensuite tu envois. Et je viens de refaire le fichier avec envois de la feuille Corps du mail en pièce jointe, au cas où. Si tu l'utilise, veille à modifier son chemin, par exemple: Chemin = "C:\SkinDash\Envois Fichiers\".

Edit: pour le brouillon outlook dans ce cas si tu insiste, il faut faire une 2ème macro. Une pour la sauvegarde, l'autre pour l'envois. Tu ne peux pas envoyer le brouillon directement.

Edit2: j'ai ajouté un 2ème dossier pour la sauvegarde des messages.

A quoi correspond le message d'erreur suivant (pièce jointe), avec la première ligne "Dim olApp As Outlook.Application" sur-ligné ?

Tout marchait nickel sur un premier ordi et la en essayant de l'ouvrir sur un second poste, j'ai ce message d'erreur quand j'essaye de lancer la macro.

Merci :)
 

Pièces jointes

  • 2016-11-21 21_08_17-Program Manager.png
    2016-11-21 21_08_17-Program Manager.png
    31 KB · Affichages: 124

SkinDash

XLDnaute Nouveau
Bonjour à tous,
Salut Loup tout Seul,

Adapte la référence dans VBA à la version Outlook.

A+ à tous

Bonsoir :)

Merci pour votre réponse; c'est justement ce que je n'arrive pas à faire, je ne comprends pas ou est déclaré dans le code la version Outlook utilisée :/

En d'autre terme comment déclarons nous dans le code que nous utilisons la version 2016 ? la version 2013 ?

merci,
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Jean-Claude :)

Skin... en mode VBA, tu as l'onglet Outils, clique dessus, ici tu as Références, clique à nouveau. Dans la liste des références déselectionne la référence manquante, et sélectionne Microsoft Outlook xx.0 Object Library .

ref-vba.gif
 
Dernière édition:

SkinDash

XLDnaute Nouveau
Bonsoir Jean-Claude :)

Skin... en mode VBA, tu as l'onglet Outils, clique dessus, ici tu as Références, clique à nouveau. Dans la liste des références déselectionne la référence manquante, et sélectionne Microsoft Outlook xx.0 Object Library .

Regarde la pièce jointe 977034

Effectivement, cela fonctionne beaucoup mieux :D

Petit info si d'autre personne passent sur ce thread: il faut au préalable décocher la version précédente "MANQUANTE xxxxxxx"

Merci beaucoup !
 

Discussions similaires

Réponses
2
Affichages
246
Réponses
1
Affichages
121
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 249
Messages
2 086 602
Membres
103 258
dernier inscrit
kalis03