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

Besoin d'aide pour une macro.

5 réponses
Avatar
Gadget
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En particulier,
comment manipuler un document word à partir du vba d'excel.

Merci pour votre aide.

5 réponses

Avatar
tissot.emmanuel
Bonsoir,

Un début de réponse pour lancer Word et ouvrir un document.

Dans VBE Outils>Références cocher Microsoft Word x.0 Object Library

Sub LancerWordOuvrirDocument()
Dim wApp As Word.Application, wDoc As Word.Document, WordFileFullName
WordFileFullName = Application.GetOpenFilename(filefilter:="Documents
Word (*.doc), *.doc")
If VarType(WordFileFullName) = vbBoolean Then Exit Sub
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open(Filename:=WordFileFullName)

If MsgBox("Voir Word ?", vbYesNo) = vbYes Then wApp.Visible = True
End Sub

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463a592a$0$25940$
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En
particulier, comment manipuler un document word à partir du vba d'excel.

Merci pour votre aide.








Avatar
Gadget
Merci pour cette première réponse, mais elle pose déjà un problème :
Set wApp = CreateObject("Word.Application")
me renvoie une erreur 13, incompatibilité de type.

nb : pour que le "dim wapp as word.application" fonctionne, j'ai ajouté la
référence à Microsoft Word 10. object library, mais peut-être est-ce
insuffisant ?
A plus.


--
Visitez notre site !
www.tohubohu.fr <<<
"tissot.emmanuel" a écrit dans le message de news:



%
Bonsoir,

Un début de réponse pour lancer Word et ouvrir un document.

Dans VBE Outils>Références cocher Microsoft Word x.0 Object Library

Sub LancerWordOuvrirDocument()
Dim wApp As Word.Application, wDoc As Word.Document, WordFileFullName
WordFileFullName = Application.GetOpenFilename(filefilter:="Documents
Word (*.doc), *.doc")
If VarType(WordFileFullName) = vbBoolean Then Exit Sub
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open(Filename:=WordFileFullName)

If MsgBox("Voir Word ?", vbYesNo) = vbYes Then wApp.Visible = True
End Sub

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463a592a$0$25940$
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En
particulier, comment manipuler un document word à partir du vba d'excel.

Merci pour votre aide.













Avatar
FFO
Salut Gadget

Le code de tissot-emmanuel fonctionne trés bien chez moi
J'ai mis personnellement la référence à Microsoft Word 11. object library
Peut être la notre différence de résultat mais je doute
Pour imprimer, sauvegarder, fermer les documents word et quitter
l'application Word rajoutes en fin de ce code les lignes suivantes :

With wDoc
.PrintOut
End With
wDoc.Close wdSaveChanges
Word.Application.Quit

En ce qui concerne les mises à jour il me faudrait plus de précision quant à
leur nature

En espérant t'avoir aidé !!!


Merci pour cette première réponse, mais elle pose déjà un problème :
Set wApp = CreateObject("Word.Application")
me renvoie une erreur 13, incompatibilité de type.

nb : pour que le "dim wapp as word.application" fonctionne, j'ai ajouté la
référence à Microsoft Word 10. object library, mais peut-être est-ce
insuffisant ?
A plus.


--
Visitez notre site !
www.tohubohu.fr <<<
"tissot.emmanuel" a écrit dans le message de news:



%
Bonsoir,

Un début de réponse pour lancer Word et ouvrir un document.

Dans VBE Outils>Références cocher Microsoft Word x.0 Object Library

Sub LancerWordOuvrirDocument()
Dim wApp As Word.Application, wDoc As Word.Document, WordFileFullName
WordFileFullName = Application.GetOpenFilename(filefilter:="Documents
Word (*.doc), *.doc")
If VarType(WordFileFullName) = vbBoolean Then Exit Sub
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open(Filename:=WordFileFullName)

If MsgBox("Voir Word ?", vbYesNo) = vbYes Then wApp.Visible = True
End Sub

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463a592a$0$25940$
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En
particulier, comment manipuler un document word à partir du vba d'excel.

Merci pour votre aide.


















Avatar
Gadget
Merci FFO.
J'ai résolu le pb en déclarant wApp en Variant plutôt qu'en Word.App. Je ne
comprend pas pourquoi celà ne marchait pas, mais bon bref...

Merci pour les méthodes pour l'impression et la sauvegarde. Plus
précisément, j'ai besoin de "sauvegarder sous" afin de garder le doc
original. Celà est-il possible ?


Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"FFO" a écrit dans le message de news:




Salut Gadget

Le code de tissot-emmanuel fonctionne trés bien chez moi
J'ai mis personnellement la référence à Microsoft Word 11. object library
Peut être la notre différence de résultat mais je doute
Pour imprimer, sauvegarder, fermer les documents word et quitter
l'application Word rajoutes en fin de ce code les lignes suivantes :

With wDoc
.PrintOut
End With
wDoc.Close wdSaveChanges
Word.Application.Quit

En ce qui concerne les mises à jour il me faudrait plus de précision quant
à
leur nature

En espérant t'avoir aidé !!!


Merci pour cette première réponse, mais elle pose déjà un problème :
Set wApp = CreateObject("Word.Application")
me renvoie une erreur 13, incompatibilité de type.

nb : pour que le "dim wapp as word.application" fonctionne, j'ai ajouté
la
référence à Microsoft Word 10. object library, mais peut-être est-ce
insuffisant ?
A plus.


--
Visitez notre site !
www.tohubohu.fr <<<
"tissot.emmanuel" a écrit dans le message de



news:
%
Bonsoir,

Un début de réponse pour lancer Word et ouvrir un document.

Dans VBE Outils>Références cocher Microsoft Word x.0 Object Library

Sub LancerWordOuvrirDocument()
Dim wApp As Word.Application, wDoc As Word.Document,
WordFileFullName
WordFileFullName =
Application.GetOpenFilename(filefilter:="Documents
Word (*.doc), *.doc")
If VarType(WordFileFullName) = vbBoolean Then Exit Sub
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open(Filename:=WordFileFullName)

If MsgBox("Voir Word ?", vbYesNo) = vbYes Then wApp.Visible = True
End Sub

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463a592a$0$25940$
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En
particulier, comment manipuler un document word à partir du vba
d'excel.

Merci pour votre aide.




















Avatar
tissot.emmanuel
Bonjour,

Pour enregistrer sous:

ChangeFileOpenDirectory "C:MesDocuments" 'Adapter le nom du
répertoire
wDoc.SaveAs FileName:="NomDeFichier.doc" 'Adapter le nom du fichier

Cordialement,

Manu/


"Gadget" a écrit dans le message de news:
463b181d$0$27382$
Merci FFO.
J'ai résolu le pb en déclarant wApp en Variant plutôt qu'en Word.App. Je
ne comprend pas pourquoi celà ne marchait pas, mais bon bref...

Merci pour les méthodes pour l'impression et la sauvegarde. Plus
précisément, j'ai besoin de "sauvegarder sous" afin de garder le doc
original. Celà est-il possible ?


Merci.


--
Visitez notre site !
www.tohubohu.fr <<<
"FFO" a écrit dans le message de news:




Salut Gadget

Le code de tissot-emmanuel fonctionne trés bien chez moi
J'ai mis personnellement la référence à Microsoft Word 11. object
library
Peut être la notre différence de résultat mais je doute
Pour imprimer, sauvegarder, fermer les documents word et quitter
l'application Word rajoutes en fin de ce code les lignes suivantes :

With wDoc
.PrintOut
End With
wDoc.Close wdSaveChanges
Word.Application.Quit

En ce qui concerne les mises à jour il me faudrait plus de précision
quant à
leur nature

En espérant t'avoir aidé !!!


Merci pour cette première réponse, mais elle pose déjà un problème :
Set wApp = CreateObject("Word.Application")
me renvoie une erreur 13, incompatibilité de type.

nb : pour que le "dim wapp as word.application" fonctionne, j'ai ajouté
la
référence à Microsoft Word 10. object library, mais peut-être est-ce
insuffisant ?
A plus.


--
Visitez notre site !
www.tohubohu.fr <<<
"tissot.emmanuel" a écrit dans le message de



news:
%
Bonsoir,

Un début de réponse pour lancer Word et ouvrir un document.

Dans VBE Outils>Références cocher Microsoft Word x.0 Object Library

Sub LancerWordOuvrirDocument()
Dim wApp As Word.Application, wDoc As Word.Document,
WordFileFullName
WordFileFullName =
Application.GetOpenFilename(filefilter:="Documents
Word (*.doc), *.doc")
If VarType(WordFileFullName) = vbBoolean Then Exit Sub
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open(Filename:=WordFileFullName)

If MsgBox("Voir Word ?", vbYesNo) = vbYes Then wApp.Visible = True
End Sub

Cordialement,

Manu/

"Gadget" a écrit dans le message de news:
463a592a$0$25940$
Salut à tous.

J'ai besoin d'aide pour créer une macro un peu complexe pour moi.
Elle doit, a partir de mon classeur excel :
- ouvrir 3 documents Word
- mettre à jour les liaisons entre mon classeur et ces documents
- imprimer ces documents words ainsi mis à jour
- "sauvegarder sous" les documents word
- les fermer.

nb : il n'est pas utile que les documents words soient visibles par
l'utilisateur.

Je cherche les instructions vba correspondant à ces étapes. En
particulier, comment manipuler un document word à partir du vba
d'excel.

Merci pour votre aide.