bonjour
je veux faire un publipostage avec pièce jointe paramétrées. j'ai récupéré le code de oliv' et une adaptation, mais cela ne correspond pas complètement à mon besoin. l'adaptation propose de nommer les fichiers avec 'l'adressemail.PDF'. je veux pouvoir envoyer des fichiers excel différents à chaque destinataire.
il y a très très longtemps que je n'ai pas codé et je ne connais pas vba. je pense qu'il doit y avoir une solution via le fichier excel où on rentre les noms et mail des destinataires du publipostage. mais comme je n'ai pas la structure des objets, je suis incapable de coder ce paramètre.

MERCI

ci dessous le code que j'ai récupéré:
Pour ThisOutlooksession
-----------------------
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'by oliv 05/02/2007 - Corrigée par Patricia et Pascale le 15/04/2013'

'Pour publipostage avec PJ OUTLOOK IDENTIQUE POUR TOUS LES MAILS ou INDIVIDUELLE PAR DESTINAIRE

If Item.Class = olMail Then
Dim objCurrentMessage As MailItem
Set objCurrentMessage = Item
If UCase(objCurrentMessage.Subject) Like "*PUBLIIDEM*" 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
End If

'On supprime le terme PUBLIIDEM du sujet
objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIIDEM ", "")
ElseIf UCase(objCurrentMessage.Subject) Like "*PUBLIPERSO*" Then
'Pascale : chemin complet et extension pièce (le fichier doit être nommé avec l'adresse mail du destinataire)
docperso = "C:\Users\Patricia\Desktop\PJ\" & objCurrentMessage.To & ".pdf"
objCurrentMessage.Attachments.Add Source:=docperso
'On supprime le terme PUBLIPERSO du sujet
objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIPERSO ", "")
'On sauvegarde le mail
objCurrentMessage.Save
End If
Set objCurrentMessage = Nothing
End If
End Sub









--------------
Pour le module
--------------
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 modifier les fichiers ?", 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 & "PUBLIIDEM" & vbCr & "dans le sujet." & vbCr & "Celui-ci sera retiré lors de l'envoi"
End Sub