Bonjour à tous!
(système office 2010)
Je rencontre une grande difficulté pour réaliser une macro consistant à exécuter un publipostage à partir d'un fichier excel, et ce uniquement concernant la ligne active (selectionnée).
Je dispose une base de donnée excel, et d'un fichier word dont le publipostage et les champs sont déjà créés
Voici ma macro, qui fonctionne, mais en publipostant toutes les lignes!
Nom du fichier excel : Publipostage.xlsm
Nom du word modèle : Publi.docx
Que dois-je faire SVP ???
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
40 Sub PubliPOST() Application.ScreenUpdating = False Sheets("Feuil1").Activate lign = ActiveCell.Row debut = "A" & lign Fin = "D" & lign Range(debut, Fin).Select 'Doc Word comprenant le publipostage FileMailing = "N:\DepContentieux\Pilotage et veille juridique\Robin\FORMULES EXCEL\Publi.docx" ' Ouverture du doc Word Dim AppWord As Word.Application Set AppWord = New Word.Application Application.ScreenUpdating = False AppWord.Visible = False 'True Set docWord = AppWord.Documents.Open(FileMailing) NomBase = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name With docWord.MailMerge 'Ouverture base de données XLS .OpenDataSource Name:=NomBase, _ Connection:="Driver={Microsoft Excel Driver (*.xlsm)};" & "DBQ=" & _ NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Feuil1$]" 'Spécifie la destination de la fusion .Destination = wdSendToNewDocument ' wdSendToPrinter pour imprimer .SuppressBlankLines = True 'Prend en compte l'ensemble des enregistrements (non vide) With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With 'Exécute l'opération de publipostage .Execute Pause:=False End With docWord.Activate docWord.Close savechanges:=False AppWord.Visible = True End Sub
intégrer un système activerow????
Merci d'avance... car je galère!!
Partager