Bonjour le forum !
j'ai un bout de code vba pour executer un publipostage sur word, et j'ai une erreur au moment de l'enregistrement du document word.
Voici le code :
L'erreur se trouve en rouge erreur 5852 l'objet demandé n'est pas disponible
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 Private Sub Commande4_Click() Dim wdApp As Word.Application Dim strCheminDoc As String Set wdApp = New Word.Application 'Dim NomDoc As String 'Set NomDoc = 'Chemin du document word à ouvrir C:\Users\user\Documents\Mes sources de donnees strCheminDoc = "C:\Users\user\Documents\Mes sources de donnees\Formulaire_Enquete_Sociale_Realisee.docx" 'Instruction SQL permettant d'extraire le nom du menage 'StrSQL = "SELECT * FROM [T_Parametres_Enquete_Realisee]" 'Démarre word 'Utilisation de deux champs pour obtenir le nom du document With wdApp .Visible = True 'ouvre le document type .Documents.Open strCheminDoc 'Paramétrer le publipostage .ActiveDocument.MailMerge.OpenDataSource _ Name:=CurrentDb.Name, _ LinkToSource:=True, _ Connection:="TABLE T_Parametres_Enquete_Realisee", _ SQLStatement:="SELECT*FROM [T_Parametres_Enquete_Realisee]" ' Diriger le publipostage vers un nouveau document plutôt que vers l'imprimante .ActiveDocument.MailMerge.Destination = wdSendToNewDocument ' Lancer la fusion .ActiveDocument.MailMerge.Execute 'Utilisation de deux champs pour obtenir le nom du document Nom1 = ActiveDocument.MailMerge.DataSource.DataFields(4).Value Prenom1 = ActiveDocument.MailMerge.DataSource.DataFields(5).Value .ActiveDocument.SaveAs "Y:\ENQUETES\MISSION ENQUETES\ENQUETES REALISEES\Enquêtes 2014\ " & Nom1 & " " & Prenom1 & ".docx" End With ' Quitter Word '.Quit SaveChanges:=wdDoNotSaveChanges wdApp.Quit ' Libérer les objets Set wdApp = Nothing End Sub
Faut il que j'utilise "For i = 1 To iR" etc alors que je n'aurai qu'un seul enregistrement à chaque fois ??
merci
Partager