Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

publipostage Word à partir d'excel

1 réponse
Avatar
dunkelzahn
Bonjour,

J'esp=E8re ne pas me tromper dans la forme de demande.
J'ai fais beaucoup de recherches sur le net et sur ce groupe et malgr=E9
tout, je n'arrive pas =E0 trouver ni comprendre pourquoi =E7a ne marche
pas.
Ce que je veux faire est =E0 partir d'une base excel, je veux ouvrir un
document word qui dispose de champs (d'o=F9 le publipostage)

Quand je le fais manuellement =E0 partir du document word et via les
icones de Word, ca marche nickel chrome.
Mais quand je le fais via VBA, l=E0 j'ai des erreurs et je ne comprends
pas le comment du pourquoi.

Voili mon code actuel :
Dim DocWD As Object
Set appWD =3D CreateObject("Word.Application")
appWD.Visible =3D True
Set DocWD =3D
appWD.documents.Open(Left(ActiveWorkbook.Path,
InStrRev(ActiveWorkbook.Path, "\", -1, vbTextCompare)) & "cartes
\Cartes_R_C_recto_CB.doc")
DocWD.MailMerge.OpenDataSource
ActiveWorkbook.FullName, _
wdOpenFormatAuto, _
True, _
False, _
True, _
False, _
"", _
"", _
False, _
"", _
"", _
Connection:=3D"Provider=3DMicrosoft.Jet.OLEDB.
4=2E0;Password=3D"""";User ID=3DAdmin;Data Source=3D" &
ActiveWorkbook.FullName & ";Mode=3DRead;Extended
Properties=3D""HDR=3DYES;IMEX=3D1;"";Jet OLEDB:System database=3D"""";Jet
OLEDB:Registry Path=3D"""";Jet OLEDB:Database Password=3D"""";Jet
OLEDB:Engine Type=3D35;Jet OLEDB:Database Locking Mode=3D0;Jet
OLEDB:Global Partial Bulk Ops=3D2;Jet OLEDB:Global Bulk
Transactions=3D1;Jet OLEDB:New Database Password=3D"""";Jet OLEDB:Create
System Database=3DFalse;Jet OLEDB:Encrypt Database=3DFalse;Jet OLEDB:Don't
Copy Locale on Compact=3DFalse;Jet OLEDB:Compact Without Replica
Repair=3DFalse;Jet OLEDB:SFP=3DFalse", _
SQLStatement:=3D"SELECT * FROM `'CARTE_ADH#$'`"


Pour le "Connection", j'ai repris =E0 partir de la commande
activedocument.MailMerge.DataSource.ConnectString et pour le
"SQLStatement", j'ai repris depuis la commande
activedocument.MailMerge.DataSource.QueryString

Quand je l'ex=E9cute, j'ai le message suivant :

Erreur d'ex=E9cution '4198'
La commande a =E9chou=E9

Je ne vois plus ou est le programme. Y a til une =E2me charitable pour
m'aider SVP ?

1 réponse

Avatar
dunkelzahn
Personne pour m'aider ?

On 9 nov, 23:26, dunkelzahn wrote:
Bonjour,

J'espère ne pas me tromper dans la forme de demande.
J'ai fais beaucoup de recherches sur le net et sur ce groupe et malgré
tout, je n'arrive pas à trouver ni comprendre pourquoi ça ne marche
pas.
Ce que je veux faire est à partir d'une base excel, je veux ouvrir un
document word qui dispose de champs (d'où le publipostage)

Quand je le fais manuellement à partir du document word et via les
icones de Word, ca marche nickel chrome.
Mais quand je le fais via VBA, là j'ai des erreurs et je ne comprends
pas le comment du pourquoi.

Voili mon code actuel :
Dim DocWD As Object
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
Set DocWD =
appWD.documents.Open(Left(ActiveWorkbook.Path,
InStrRev(ActiveWorkbook.Path, "", -1, vbTextCompare)) & "cartes
Cartes_R_C_recto_CB.doc")
DocWD.MailMerge.OpenDataSource
ActiveWorkbook.FullName, _
wdOpenFormatAuto, _
True, _
False, _
True, _
False, _
"", _
"", _
False, _
"", _
"", _
Connection:="Provider=Microsoft.Jet.OLEDB.
4.0;Password="""";User IDmin;Data Source=" &
ActiveWorkbook.FullName & ";Mode=Read;Extended
Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet
OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet
OLEDB:Engine Type5;Jet OLEDB:Database Locking Mode=0;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create
System Databaselse;Jet OLEDB:Encrypt Databaselse;Jet OLEDB:Don't
Copy Locale on Compactlse;Jet OLEDB:Compact Without Replica
Repairlse;Jet OLEDB:SFPlse", _
SQLStatement:="SELECT * FROM `'CARTE_ADH#$'`"

Pour le "Connection", j'ai repris à partir de la commande
activedocument.MailMerge.DataSource.ConnectString et pour le
"SQLStatement", j'ai repris depuis la commande
activedocument.MailMerge.DataSource.QueryString

Quand je l'exécute, j'ai le message suivant :

Erreur d'exécution '4198'
La commande a échoué

Je ne vois plus ou est le programme. Y a til une âme charitable pour
m'aider SVP ?