Bonjour,
j'ai deux messages d'erreur ("erreur d'automation 440 sur excel, l'autre sous word: word ne trouve pas les données erreur 5922), suite à une tentative de publipostage d'excel vers word.
J'ai donc un fichier excel, d'ou je souhaite appeler la macro word pour lancer le publipostage. Sauf que dans cette fameuse macro word je dois y préciser le chemin du classeur excel en question, or le nom du classeur et donc le chemin, est attribué par l'utilisateur lors de l'enregistrement de ce dernier, et s'affiche pour faire simple en cellule A301 de la feuille "Bilan" du classeur...
Voila le code qui génère ces erreurs:
excel:
Sous word:
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 Sub CreateNewWordDoc() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Dim i As Integer Dim NomBase As String Dim monparametre As Variant sert lors de l'appel de la macro word: c'est le nom du classeur, auquel il faut faire référence 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" Application.ScreenUpdating = True End Sub
bon j 'imagine bien que les erreurs viennent du fait que la variable n'est pas pris en compte mais je ne sais pas comment faire!! (ces macros marche si j'enleve ces variables et que je stipule le chemin absolu...!)
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 Option Explicit Sub Macro3(monparametre As Variant) ' ' Macro3 Macro Dim nomclasseurexcel 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 'paragraphe surligné par la commande de débogage With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With End Sub
En esperrant votre aide
Cordialement
M.
(Post posté sur un autre forum sans réponse!)
Partager