OVH Cloud OVH Cloud

Word en automation

1 réponse
Avatar
Phil
Bonjour,
Je souhaiterai ouvrir un fichier source publipostage word à partir de
ACCESS, créer une copie de ce fichier puis fermer le fichier source.
Tout cela automatiquement afin que cela soit transparent pour l'utilisateur.

Voici les lignes de Code qui devraient normalement effectuer cette
procédure:
Dim ObjWord As Object
Dim DocWord As Object

Set ObjWord = CreateObject("Word.Application")
With ObjWord
.Documents.Open "D:\Appli\MaîtreFusion_Fax.Doc"
.Visible = True
End With
Set DocWord = ObjWord.ActiveDocument.MailMerge
If DocWord.State = wdMainAndDataSource Then {ERREUR!!!!!!}
Set DocWord.Destination = wdSendToNewDocument {ERREUR!!!!}
DocWord.Execute {ERREUR!!!!}
End If
Set ObjWord = Nothing
set ObjWord.Documents ("D:\Appli\MaîtreFusion_Fax.Doc").close
SaveChanges:=wdDoNotSaveChanges {ERREUR!!!}

Nota: Une partie du code corespond à du code word (wdMainAndDataSource par
exemple).

Malheureusement cela ne fonctionne pas et après plusieurs heures à chercher
les bonnes formules, je demande de l'aide pour corriger les lignes
ci-dessus.

D'avance merci...

1 réponse

Avatar
Gérard
Bonjour,

J'ai rencontré ce genre de problème dans le cadre d'automation avec Excel ou
Word.

A aujourd'hui, la solution que j'ai adoptée (un peu rustre peut être) c'est
de changer ces variables (Word ou Excel) par leur valeur numérique. Pour
cela je bloque l'exécution du code dans l'application d'origine et je
récupère la valeur des variables en positionnant la souris dessus.

La solution est pas trés élégante mais elle marche.

Pour la ligne DocWord.Execute, regarde si cela ne marche pas mieux avec
l'objet ObjWord

Gérard

Pour information et sauf erreur de ma part:

wdMainAndDataSource=2

wdSendToNewDocument=0

wdDoNotSaveChanges=0

"Phil" a écrit dans le message de news:
433daf43$0$1716$
Bonjour,
Je souhaiterai ouvrir un fichier source publipostage word à partir de
ACCESS, créer une copie de ce fichier puis fermer le fichier source.
Tout cela automatiquement afin que cela soit transparent pour
l'utilisateur.

Voici les lignes de Code qui devraient normalement effectuer cette
procédure:
Dim ObjWord As Object
Dim DocWord As Object

Set ObjWord = CreateObject("Word.Application")
With ObjWord
.Documents.Open "D:AppliMaîtreFusion_Fax.Doc"
.Visible = True
End With
Set DocWord = ObjWord.ActiveDocument.MailMerge
If DocWord.State = wdMainAndDataSource Then {ERREUR!!!!!!}
Set DocWord.Destination = wdSendToNewDocument {ERREUR!!!!}
DocWord.Execute {ERREUR!!!!}
End If
Set ObjWord = Nothing
set ObjWord.Documents ("D:AppliMaîtreFusion_Fax.Doc").close
SaveChanges:=wdDoNotSaveChanges {ERREUR!!!}

Nota: Une partie du code corespond à du code word (wdMainAndDataSource par
exemple).

Malheureusement cela ne fonctionne pas et après plusieurs heures à
chercher
les bonnes formules, je demande de l'aide pour corriger les lignes
ci-dessus.

D'avance merci...