Bonjour, voila j'essai de faire un publipostage par VBA mais je rencontre le message d'erreur "erreur d'exécution 440, erreur d'automation".
En fait pour résumer le problème, j'imagine que c'est d'ailleurs là que ça coince, je cherche à enregistrer le nom du fichier excel dans la macro word, pour que la fusion s'effectue meme si on enregistre l'excel sous un autre nom.
Voila mon code dans excel:
Voila mon code dans le fichier de fusion word, fichier nommé "Cible1":
A noter que les documents se trouvent dans le meme dossier.
En esperant que vous pourrez m'aider, car là , je galere sévère!!
Merci
M.
En fait pour résumer le problème, j'imagine que c'est d'ailleurs là que ça coince, je cherche à enregistrer le nom du fichier excel dans la macro word, pour que la fusion s'effectue meme si on enregistre l'excel sous un autre nom.
Voila mon code dans excel:
Code:
Sub CreateNewWordDoc()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim i As Integer
Dim NomBase As String
Dim monparametre As Variant
'c'est ce "parametre" qui doit etre repris ensuite dans Word, comme variable pour déterminer le chemin du classeur
Application.ScreenUpdating = False
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(ThisWorkbook.Path & "\Cible1.doc")
monparametre = Sheets("Bilan").Range("A301").Value
wrdApp.Run "Macro3", "monparametre"
'ici j'essaie de dire lancer la macro word "Macro3" qui a pour argument "monparametre"
Application.ScreenUpdating = True
End Sub
Code:
Option Explicit
Sub Macro3(monparametre As Variant)
Dim nomclasseurexcel
'Je voudrais que la variable "monparametre" issue d'excel s'enregistre sous la variable "nomclasseurexcel pour faciliter la relecture du code vba
nomclasseurexcel = monparametre
ActiveDocument.MailMerge.MainDocumentType = wdCatalog
ActiveDocument.MailMerge.OpenDataSource Name:= _
nomclasseurexcel _
, ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source= nomclasseurexcel;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path=""" _
, SQLStatement:="SELECT * FROM `Cachecible1$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
'Le débogage suite à l'erreur 5922, word n'a pas pu ouvrir les données, me surligne cette partie: Open datasource Name...=>typeAccess
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
End Sub
A noter que les documents se trouvent dans le meme dossier.
En esperant que vous pourrez m'aider, car là , je galere sévère!!
Merci
M.