Bonjour à tous, je remercie beaucoup d'entres vous qui m'ont aidés à leur insu dans l'avancée du développement de mon outil sous Excel. J'arrive au bout mais je bute sur le publipostage. Je vois également que je ne suis pas seul dans ce cas.
J'aimerai faire du publipostage depuis Word. J'utilise Excel comme base de Données de fusion., cela marche très bien sauf que je n'ai pas trouvé le moyen de rajouter automatiquement une pièce jointe au document fusionné.
La macro ci dessous, fonctionne partiellement elle crée les documents avec la pièce jointe mais ne met pas à jour les champs de fusion du document principal.
Là, je galère+
Si quelqu'un a une idée, merci.
Sub Macro2() 'publipostageMailing_wordVBA_avecPieceJointe()
'michelxld le 03.03.2006
'
'Utilisez cette procédure après avoir créé et mis en forme votre document principal.
'C'est la macro qui va boucler sur tous les enregistrements et envoyer les mails et y ajouter une pièce jointe .
'Les adresses mail sont dans le champ "champMail" de la base de données .
'Cet exemple ne prend pas en compte les filtres éventuels dans le publipostage .
'
'Necessite d'activer la reference Microsoft Outlook xx.x Object Library
'
Dim outApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim leSujet As String, leDestinataire As String
Dim i As Integer
Set outApp = CreateObject("Outlook.Application")
leSujet = "Essai de publipostage VBA avec pieces jointes"
'Afficher le 1er enregistrement du publipostage
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
'boucle sur tous les enregistrements de la base de données
For i = 1 To ActiveDocument.MailMerge.DataSource.RecordCount
'récupération des adresses mail qui sont dans le champ "champMail"
leDestinataire = ThisDocument.MailMerge.DataSource.DataFields("Email").Value
Set oItem = outApp.CreateItem(olMailItem)
'Application.DisplayAlerts = wdAlertsNone
With oItem
.Subject = leSujet
.Body = ThisDocument.Content 'insère le contenu du document dans le corps du message
.To = leDestinataire
'ajout d'un fichier attaché
.Attachments.Add "C:\Coucou.txt"
.Send 'envoi du mail
End With
'pour passer à l'enregistrement suivant
ThisDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Set oItem = Nothing
Next i
Set outApp = Nothing
End Sub
J'aimerai faire du publipostage depuis Word. J'utilise Excel comme base de Données de fusion., cela marche très bien sauf que je n'ai pas trouvé le moyen de rajouter automatiquement une pièce jointe au document fusionné.
La macro ci dessous, fonctionne partiellement elle crée les documents avec la pièce jointe mais ne met pas à jour les champs de fusion du document principal.
Là, je galère+
Si quelqu'un a une idée, merci.
Sub Macro2() 'publipostageMailing_wordVBA_avecPieceJointe()
'michelxld le 03.03.2006
'
'Utilisez cette procédure après avoir créé et mis en forme votre document principal.
'C'est la macro qui va boucler sur tous les enregistrements et envoyer les mails et y ajouter une pièce jointe .
'Les adresses mail sont dans le champ "champMail" de la base de données .
'Cet exemple ne prend pas en compte les filtres éventuels dans le publipostage .
'
'Necessite d'activer la reference Microsoft Outlook xx.x Object Library
'
Dim outApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim leSujet As String, leDestinataire As String
Dim i As Integer
Set outApp = CreateObject("Outlook.Application")
leSujet = "Essai de publipostage VBA avec pieces jointes"
'Afficher le 1er enregistrement du publipostage
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
'boucle sur tous les enregistrements de la base de données
For i = 1 To ActiveDocument.MailMerge.DataSource.RecordCount
'récupération des adresses mail qui sont dans le champ "champMail"
leDestinataire = ThisDocument.MailMerge.DataSource.DataFields("Email").Value
Set oItem = outApp.CreateItem(olMailItem)
'Application.DisplayAlerts = wdAlertsNone
With oItem
.Subject = leSujet
.Body = ThisDocument.Content 'insère le contenu du document dans le corps du message
.To = leDestinataire
'ajout d'un fichier attaché
.Attachments.Add "C:\Coucou.txt"
.Send 'envoi du mail
End With
'pour passer à l'enregistrement suivant
ThisDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Set oItem = Nothing
Next i
Set outApp = Nothing
End Sub