Bonjour,
J'ai besoin d'un petit coup de demain, j'automatise un publipostage word avec une plage excel comme base de données via un bouton. Mon problème est que je ne sais pas ou je peux spécifier la plage de données nommée Liste.
Merci de votre aide.
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 Private Sub CommandButton1_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 Dim Nbligne Nbligne = Application.WorksheetFunction.CountA(Columns(1)) - 1 NomBase = "C:\Users\X\Documents\PUBLIC.xlsm" Application.ScreenUpdating = False Set appWord = New Word.Application appWord.Visible = True 'Ouverture du document principal Word Set docWord = appWord.Documents.Open("C:\Users\X\Documents\Elag.docx") '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 (*.xlsm)};" & "DBQ=" & NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Base$]" '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
Partager