Publipostage par mail avec pièce jointe

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 a été imaginée par Oliv' et qui ne fonctionne qu'avec le client messagerie Outlook de la suite Office (et non pas Outlook en ligne...).

J'ai décidé d'écrire une procédure détaillée ici suite aux nombreuses demandes faites sur le forum Word.

Attention, il 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 a été extraite de la FAQ Outlook (qui n'existe plus).

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
= 0
If publipostagePJ <> "" Then
While publipostagePJ(i) <> "fin"
objCurrentMessage.Attachments.Add Source:= publipostagePJ(i)
= i + 1
Wend
End If
'On supprime le terme PUBLIPOSTAGE du sujet
objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIPOSTAGE """)
'On sauvegarde le mail
objCurrentMessage.Save
End If
Set objCurrentMessage = Nothing
End If
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 + 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
End If
Next i
End If
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.
  • 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 que Outlook sera ouvert, les fichiers prédéfinis comme pièce jointe 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.

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.