Publipostage avec Pièce jointe sur Outlook -pblm de code VBA

Bonjour,

Contexte :

Je souhaite faire un emailing en utilisant outlook 2007. Pour ce faire, il faut utiliser l’outil publipostage de Word, qui nous permet ensuite d’envoyer vers outlook. Jusque-là pas de problème il s’agit d’un simple publipostage.

Problème :

Or, je souhaite que ce publipostage contienne une pièce jointe. La fonction Publipostage avec pièce(s) jointe(s) n'est pas prévue dans Word. Il est donc impossible de réaliser la chose par le système classique.

J’ai trouvé une solution sur le Web, cette solution est purement Outlook et passe par VBA.

Cette macro a été écrite par Oliv' et est extraite de la FAQ Outlook : Lien : http://www.faqword.com/index.php/word-tutoriels/toutes-versions/670-publipostage-et-pj.html?pageNumber=1&pageNumber=0#udjaCommentsWrapper

J’ai les codes suivants, voyez vous une erreur ?

- This look session:

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

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

- Module 1:

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("C:\Users\svoisin\Desktop\b.xlsx")

If "" = Dir(PJ, vbNormal) Then GoTo quest

publipostagePJ(i) = PJ

Else: Exit For

End If

Next i

End If

End Sub

Je vous remercie par avance pour ce que vous pourrez faire / répondre.

Bonsoir,

As tu eu une anomalie ?

Sinon, pour moi cela me parait tout à fait correct mais attention lorsque tu utilise des objets d'une librairie bien spécifique qui n'est pas activée par défaut, il faut le faire.

Pour exemple, lorsque tu envoies un fichier via outlook en utilisant excel et cela depandra de ta version outlook, il faut l'activer en pressant les touches ALT+F11 :

  • Choisir dans le menu du classeur MSO VisualBAsic : Outils ;
  • Références ;
  • Cliquer sur Microsoft Office 10.0 ou 12.0 Object Library.

A très vite

Amitié

Air_2

Bonjour Air_2,

Pour vous répondre j'ai effectivement une anomalie j'ai l'impression qu'il n'y a pas de lien entre "this look session" et le "module". En ce sens, la macro ne va pas chercher ma PJ. Du coup, mes mails n'ont eux aussi pas de PJ.

Peut être que la solution serait que vous complétiez les codes de base avec les informations de chemin de pièce que je peux vous fournir ? Il est possible que je les manipule mal.

Je ne vois pas d'autre solution...

Je vous remercie Air_2.

Amitié.

Bonsoir,

Vous serait il possible de joindre votrefichier pour apporter la solution compatible ?.

Cdt

Air_2

Bonjour,

Ci-attaché le fichier avec pour chemin : C:\Users\svoisin\Desktop\Mon_doc

Merci encore pour vos réponses rapides; je crois les doigts.

Cordialement,

305mon-doc.pdf (145.30 Ko)

Bonsoir,

Pouvez-vous essayer en remplacant la ligne

objCurrentMessage.Attachments.Add Source:=publipostagePJ(i)

Par :

objCurrentMessage.Attachments.Add (PJ)

Ou par :

With olmail

.Attachmentd.Add (PJ)

End With

Bonne soirée

A très vite

Monsieur,

Mon problème est solutionné. En effet, j'ai recommencé la manipulation avec les codes de bases, les messages box se sont bien affichés, j'ai bien renseigné le chemin et tout a marché nikel

Merci encore pour votre aide et patience.

A bientôt sur ce forum, merci à Excel-Pratique.

Bien cordialement,

Elispse.

Bonjour,

J'ai changé les codes comme vous l'indiqiez cependant après avoir mis ma pièce jointe je n'ai pas de message me spécifiant qu'il faut mettre publipostage devant l'object dans Word. Et quand j'envoi mon fichier, je n'ai pas de pièce jointe..

Pouvez vous m'aider ?

Merci !

Rechercher des sujets similaires à "publipostage piece jointe outlook pblm code vba"