Bonjour à tous,
Je crée cette macro devant réaliser un publipostage à partir d'Excel 2007. Elle ouvre le document principal .docx et vient normalement chercher la base de données, en l'occurence une plage de données nommées dans le fichier Excel.
Cette macro provient d'un tuto sur le fofo mais j'ai un problème de liaison avec ma table, elle ne la trouve pas...
D'où cela pourrait provenir, le doc Word s'ouvre donc c'est bien un dossier principal de publipostage, j'ai activé la réf Microsoft Object Library...
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
29
30
31
32
33
34
35
36
37
38
39 Private Sub commandButton6_Click() 'Nécessite d'activer la référence "Microsoft Word xx.x Object Library" Dim docWord As Word.Document Dim appWord As Word.Application Dim NomBase As String NomBase = "C:\Documents and Settings\FRED\Bureau\FichierExcel\DonnéesclientTestpubli.xls" Application.ScreenUpdating = False Set appWord = New Word.Application appWord.Visible = True 'Ouverture du document principal Word Set docWord = appWord.Documents.Open("C:\Documents and Settings\Trame publipostage_Appels de fond2_Testpubli.doc") 'fonctionnalité de publipostage pour le document spécifié With docWord.MailMerge 'Ouvre la base de données .OpenDataSource Name:=NomBase, _ Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & NomBase & "; ReadOnly=True;", _ SQLStatement:="SELECT * FROM [Feuil1$]" 'Spécifie la fusion vers l'imprimante .Destination = wdSendToPrinter .SuppressBlankLines = True 'Prend en compte l'ensemble des enregistrements With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With 'Exécute l'opération de publipostage .Execute Pause:=False End With Application.ScreenUpdating = True 'Fermeture du document Word docWord.Close False appWord.Quit End Sub
Merci de votre aide et bon aprem
Partager