Bonjour à tous,
J'ai à souhait de réaliser une macro afin de générer un publipostage de façon hebdomadaire. Actuellement, tout fonctionne comme suit :
- Un fichier Word mis en page (représentant le document principal de fusion) et un fichier Excel rempli (représentant la source de données)
- Le fichier Word est défini comme il faut (source de données liée, champs de fusion)
- Le fichier Excel comprend des colonnes "Mois" et "Jour" entre autres
- Pour générer le publipostage, il suffit d'aller dans Modifier la liste des destinataires > Filtrer ou Trier (en fonctionne des deux colonnes précédentes) et ça affiche les documents correspondants
Mon objectif est de simplifier le dernier point de façon transparente (tout doit se faire en un bouton/une macro en somme). Voici donc le code que j'ai réalisé sur un fichier Excel à part (vide) :
Quand j'essaye de compiler, cette erreur survient :"Membre de méthode ou de données introuvable" en surlignant la ligne "Set appOffice = appWord.OfficeDataSourceObject". Pourtant, je n'ai fait que suivre l'aide qu'il y a dans VB Office.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub GenererPublipostage() Dim DateMin, DateMax As Date Dim appWord As Word.Application Dim docWord As Word.Document Dim appOffice As Office.OfficeDataSourceObject Application.ScreenUpdating = False DateMin = Date - Weekday(Date) + 2 DateMax = Date - Weekday(Date) + 6 Set appWord = New Word.Application appWord.Visible = True Set docWord = appWord.Documents.Open("C:\monDocumentPrincipal.doc") With docWord.MailMerge .MainDocumentType = wdFormLetters .OpenDataSource Name:="C:\maSourceDeDonnees.xls", ReadOnly:=True Set appOffice = appWord.OfficeDataSourceObject appOffice.Open With appOffice.Filters ' J'ajoute ici mes filtres avec .Add .ApplyFilter End With ' Je trie mes données filtrées avec appOffice.setSortOrder .Destination = wdSentToPrinter .Execute End With Application.ScreenUpdatin = True docWord.Close SaveChanges:=wdDoNotSaveChanges appWord.Quit End Sub
Je ne vois donc pas où est le problème et n'ayant pas trouvé de réponse sur le Net, je m'adresse à vous pour essayer de corriger ça.
Merci d'avance pour vos réponses,
Un débutant en VBA
Partager