PUBLIPOSTAGE PAR E MAIL AVEC PIECE JOINTE Trouvé sur la Faq Word : http://faqword.com/index.php/word-tutoriels/toutes-versions/670-publipostage-et-pj.html Avertissements : La fonction Publipostage avec pièce(s) jointe(s) n'est pas prévue dans Word. Cette solution est une solution purement Outlook qui ne fonctionne qu'avec le client messagerie Outlook de la suite Office (et non pas Outlook Express...). Attention, ne s agit pas d un cours sur le publipostage. Pour utiliser cette procédure, vous devez déjà savoir utiliser le publipostage avec Word. C'est donc une solution qui passe par une macro Outlook. Cette macro a été écrite par Oliv' et est extraite de la FAQ Outlook : http://faq-outlook.fr/. 1. Préparation du code dans Outlook Affichez l éditeur de VB Outlook (touche Alt + F11). Dans la fenêtre des projets à gauche, cliquez sur les signes + de façon à afficher l objet ThisOutlookSession comme indiqué sur la figure ci-dessous
Copiez-collez, dans la fenêtre du code, le code ci-dessous. Vous devez obtenir ceci : Code à coller dans ThisOutlookSession Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 'by oliv' 05/02/2007 Pour publipostage avec PJ OUTLOOK 2003 If Item.Class = olmail Then Dim objcurrentmessage As MailItem Set objcurrentmessage = Item If UCase(objCurrentMessage.Subject) Like "*PUBLIPOSTAGE*" Then On Error Resume Next 'Pour ajouter la même PJ à tous Dim i As Long i = 0 If publipostagepj <> "" Then While publipostagepj(i) <> "fin" objcurrentmessage.attachments.add Source:= publipostagepj(i) i = i + 1 Wend 'On supprime le terme PUBLIPOSTAGE du sujet objcurrentmessage.subject = Replace(objCurrentMessage.Subject, "PUBLIPOSTAGE ", "") 'On sauvegarde le mail objcurrentmessage.save Set objcurrentmessage = Nothing End Sub
Toujours dans le Visual Basic Editor d Outlook, insérez un nouveau module (menu Insertion, Module. Dans ce nouveau module, copiez-collez le code ci-dessous : Code à coller dans Module1 Public publipostagepj As Variant Sub setpublipostage() On Error Resume Next If publipostagepj(0) = "" Then publipostagepj = Array("fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin") While publipostagepj(i) <> "fin" contenu = contenu & vbcr & publipostagepj(i) i = i + 1 Wend If contenu = "" Then contenu = "vide" modifier = MsgBox(contenu & vbcr & "Voulez vous choisir un fichier à joindre?", vbyesno, "Fichiers paramétrés") If modifier = vbyes Then For i = 0 To 9 If i > 0 Then encore = MsgBox("un autre?", vbyesno) quest: If encore <> vbno Then PJ = InputBox("Emplacement du fichier joint au PUBLIPOSTAGE?", _ "Paramétrage du PUBLIPOSTAGE pour la session", publipostagepj(i)) If "" = Dir(PJ, vbnormal) Then GoTo quest publipostagepj(i) = PJ Else: Exit For Next i MsgBox "Votre publipostage doit comporter le terme :" & vbcr & _ "PUBLIPOSTAGE" & vbcr & "dans le sujet." & vbcr & _ "Celui-ci sera retiré lors de l'envoi" End Sub Fermez le VBE. 2. Lancer la macro
Dans Outlook, lancez la macro SetPublipostage : Alt + F8, sélectionnez la macro, et cliquez sur le bouton Exécuter. La macro vous demande si vous voulez joindre un fichier. Notez que si c est la première fois que vous lancez la macro, il n y a pas encore de fichier prêt à être joint. La boîte de dialogue affiche alors le résultat «vide». Si au contraire, vous avez déjà lancé la macro, vous verrez dans la boîte de dialogue le nom du fichier qui est déjà paramétré pour être joint. Cliquez sur OUI pour choisir un fichier et saisissez le chemin exact du fichier à joindre et cliquez sur OK : Une boîte de dialogue s affiche vous proposant d ajouter un autre fichier. Cliquez sur Oui pour ajouter un autre fichier ou bien cliquer sur Non si vous n avez pas d autres fichiers à insérer.
Une dernière boîte de dialogue vous informe que l objet du publipostage doit contenir le mot PUBLIPOSTAGE (suivi d une espace). Le mot PUBLIPOSTAGE sera ôté de l objet lors de l envoi. Cela signifie que dorénavant, au cours de cette session Outlook, c est-à-dire tant qu'outlook sera ouvert, les fichiers prédéfinis comme pièces jointes seront systématiquement joints à tous les messages contenant le mot PUBLIPOSTAGE (suivi d une espace). Pour changer de pièce jointe, il faudra relancer la macro. Si vous quittez Outlook, la macro sera remise à zéro. Vous devrez donc la relancer si vous souhaitez recommencer un publipostage avec pj. 3. Créer un publipostage Créez votre document de publipostage, en choisissant Messages électroniques comme type de document. Saisissez le document avec les invariants, et les champs de publipostage, comme pour un publipostage tout à fait ordinaire. Lancez la fusion en cliquant sur le bouton Fusionner vers un message électronique. Dans la boîte de dialogue Fusionner avec un message électronique, saisissez l objet du mail en commençant celui-ci par le mot PUBLIPOSTAGE suivi d une espace. Vous pouvez maintenant appuyer sur le bouton OK pour lancer le publipostage. Chaque mail sera accompagné du ou des fichiers que vous avez au préalable sélectionnés.