Bonjour le Forum,
Ma source.
Publipostage Word ExcelPAR Silkyroad/
Il n'y a qu'un seul enregistrement dans ma base de données source.
J'aurais souhaité avant l'impression du fichier résultat, l'enregistrer.
J'ai récupéré sur la toile les différentes occurences de la méthode Destination (également disponible sur l'aide en ligne)
'wdSendToEmail : Send results to e-mail recipient.
'wdSendToFax : Send results to fax recipient.
'wdSendToNewDocument : Send results to a new Word document.
'wdSendToPrinter : Send results to a printer.
J'ai donc codé
Le code Buggue sur la ligne Active Document
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 Public Sub LiaisonWord(nombase As String, typedoc As String) 'SILKYROAD 'http://silkyroad.developpez.com/Excel/PublipostageWordExcel/ 'Nécessite d'activer la référence "Microsoft Word xx.x Object Library" 'nombase = fichier Excel source 'typedoc = 757B OU 990I ou Cerfa 'Occurences de MailMerge.Destination = 'wdSendToEmail : Send results to e-mail recipient. 'wdSendToFax : Send results to fax recipient. 'wdSendToNewDocument : Send results to a new Word document. 'wdSendToPrinter : Send results to a printer. Dim DocWord As Word.Document Dim AppWord As Word.Application Application.ScreenUpdating = False Set AppWord = New Word.Application 'Développement 'AppWord.Visible = True AppWord.Visible = False 'Ouverture du document principal Word Set DocWord = AppWord.Documents.Open("monfichiersource.doc") With DocWord.MailMerge 'IMPORTANT : redéfinir si besoin Champ_Word, appelé ci-dessous. 'Ouvre la base de données .OpenDataSource Name:=nombase, _ Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & nombase & "; ReadOnly=True;", _ SQLStatement:="SELECT * FROM [Champ_Word]" 'Développement voir plus haut les occurences pour la méthode Destination 'Spécifie la fusion vers l'imprimante '.Destination = wdSendToPrinter .Destination = wdSendToNewDocument .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 'Développement 'Fermeture du document Word DocWord.Close False With ActiveDocument .SaveAs FileName:=("monfichierrésultat.doc") .PrintOut .Close End With AppWord.Quit End Sub
avec ce message "Aucun document n'est ouvert" ???
Même erreur si j'écris
D'où ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .Destination = wdSendToNewDocument Dim RésWord As Word.Document Set RésWord = ActiveDocument
Comment activer un document issu d'un publipostage (1 seul enregistrement)
afin de l'enregistrer puis l'imprimer?
Partager