Erreur d'automation word/excel

marrek

XLDnaute Nouveau
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:
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
Voila mon code dans le fichier de fusion word, fichier nommé "Cible1":
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.
 

kllmoon

XLDnaute Occasionnel
Re : Erreur d'automation word/excel

Si tu veux sauvegarder ton document word et l'envoyer par mail, ce serait plus facile de tout faire à partir d'excel.

Code:
Dim AppWord
Set AppWord = CreateObject("Word.Application")
monparametre = Sheets("Bilan").Range("A301").Value
Shell "winword.exe "" 'met ton chemin d'accès ici """""
AppWord.Visible = False
AppWord.Selection.Paste
AppWord.ActiveDocument.SaveAs " 'chemin d'accès & monparametre "
    AppWord.Quit
   Application.EnableEvents = True

Ensuite, tu envois par mail "c:\chemind'acces" & monparametre &".doc" puis le tour est joué.
 

fhoest

XLDnaute Accro
Re : Erreur d'automation word/excel

bonjour,
si tu utilise option explicit c'est que tu veux que tes variables puissent etres utilisées en concervant leurs valeurs,donc je te suggère de les déclarer en public juste derriere le script option explicite
en fait de cette maniere:
option explicit
public xxxx as yyyy au lieu de dim xxxx as yyyy
pour le reste es-tu sur que dans les reférences (outils/références) la dll qui concerne ton application.word est bien coché si pas la petite case sera coché et il sera inscrit "manquant ou alors missing" décoche la et essaie a nouveau.
A+
 

marrek

XLDnaute Nouveau
Re : Erreur d'automation word/excel

Bonjour, et merci de vos réponses!

Alors j'ai un peu avancé sur mon problème, disons que ça marche maintenant ;D

Pour les curieux mon problème était les guillemets à "monparametre" après l'appel de la macro word sous excel!

Par contre j'aimerais bien en effet enregistrer le doc word a partir d'excel, aussi vos propos ,kllmoon, m'interessent grandement. Le hic c'est que je ne connais pas "winword .exe".
Le chemin que je dois indiquer c'est le chemin ou se trouve le doc j'imagine...
et est ce que du coup AppWord.Quit, me ferme le doc word en question ou bien word d'office (soit tous les word??)...

Enfin fhoest, pour la déclaration de variable, meme si ça marche j'aimerais bien faire selon ta méthode, le hic c'est que je ne sais pas sous quel nom déclarer ces dernières, c'est pour ça que je l'avais laissé vide, et à la charge d'excel de le faire...
Si vous avez des idées?

En vous remerciant
Cordialement
M.
 

Discussions similaires

Statistiques des forums

Discussions
312 271
Messages
2 086 688
Membres
103 372
dernier inscrit
BibiCh