Code pour publipostage mail à partir d'une colonne excel

barbufmlc Messages postés 6 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 29 septembre 2009 - 14 mars 2006 à 17:31
barbufmlc Messages postés 6 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 29 septembre 2009 - 20 mars 2006 à 08:58
Bonjour,

J'utilise une application VB à partir de laquelle j'exporte un fichier de personnes contact (nom, prénom, mail). Aujourd'hui je n'ai pas la possibilité d'envoyer un mail à ces personnes. Il faudrait que je passe par word 2000 (outils/publipostage... et en plus cela ne m'autorise pas d'insérer de pièce jointe en pdf par exemple).

Ya t-il une ou des solutions (code source) à mon problème.

Merci de votre coopération.

Barbu

4 réponses

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
14 mars 2006 à 17:49
bonsoir


je ne suis pas sur d'avoir bien compris , mais cette macro Word permer d'utiliser les outils de publipostage pour envoyer un mailling , en ajoutant une piece jointe externe
dans cet exemple les adresses mails sont dans le champ "champMail"



Sub publipostageMailing_WordVBA_avecPieceJointe()
'MichelXld le 03.03.2006
'Utilisez cette procédure Word apres avoir créé et mis en forme votre document principal.
'C'est la macro qui va boucler sur tous les enregistrements de la base de données
'puis envoyer les mails et y ajouter une pièce jointe .
'Cet exemple ne prend pas en compte les filtres eventuels 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("champMail").Value


Set oItem = outApp.CreateItem(olMailItem)

With oItem
.Subject = leSujet
.Body = ThisDocument.Content '
.To = leDestinataire
'ajout d'un fichier attaché
.Attachments.Add "C:\maPieceJointe.txt"
.Send 'envoi du mail
End With


'pour passer à l'enregistrement suivant
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Set oItem = Nothing
Next i


Set outApp = Nothing
End Sub


bonne soiree
michel
0
barbufmlc Messages postés 6 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 29 septembre 2009
17 mars 2006 à 12:52
Merci pour la réponse. ça fiat deux jours que j'essaie mais (étant débutant dans les macros) à chaque fois il y erreur sur le "RecordCount"
Est-ce que j'effectue la bonne manip : sous word écriture de mon texte à envoyer, création de la macro, execution de la macro, il ne se passe rien ... Comment la macro fait le lien avec mon fichier excel ? Désolé pour cette question mais cela me travaille !!

Merci pour la réponse.

Barbu
0
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
17 mars 2006 à 18:40
bonsoir

le principe du publipostage est de mettre en forme le document Word et d'insérer les champs de fusion issues de la base de données ( Excel , Access , Word ...)

est ce que tu as prealablement lié ta base de données au document principal Word et inséré dasn champs dans le document ?

Menu Outils
Lettres et Publipostage
Assistant de fusion et publipostage

http://www.excel-downloads.com/html/French/phpwiki/index.php?pagename=MichelXldPageDix

bonne soiree
michel
0
barbufmlc Messages postés 6 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 29 septembre 2009
20 mars 2006 à 08:58
Bonjour,

En fait, j'ai créé deux fichiers :
- word : avec mon texte à envoyé, plus le champs «champMail»,
- excel : avec notamment la colonne «champMail» où sont saisis les adresses mail
- doc .txt à envoyer en pièce jointe sur la racine de C
Puis j'ai créé une macro avec ton code.

Ensuite pour executer tout ce petit monde, j'ouvre word, je vais dans le menu publipostage (je paramètre les options ("document principal" , "source"). C'est ensuite ici que je bloque et ne doit pas comprendre ... Si je lance l'execution, le message s'envoie (sans la pièce jointe), si je n'execute pas le publipostage et que je lance la macro, il y a un message d'erreur, il y a un message d'erreur de compilation "Membre de méthode ou de données introuvable" et il souligne "---------------------------
Microsoft Visual Basic
---------------------------
Erreur de compilation:


Membre de méthode ou de données introuvable
---------------------------
OK Aide
---------------------------

et souligne le mot RecordCount de la ligne "For i = 1 To ActiveDocument.MailMerge.DataSource.RecordCount".

Que se passe -il ?

Merci et bonne journée

barbu
0
Rejoignez-nous