Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ouvrir word + executer macro depuis excel

127 views
Skip to first unread message

Joėl

unread,
Jun 20, 2002, 4:40:24 PM6/20/02
to
Bonjour

J'essaye d'ouvrir word depuis excel 2000 et d'exécuter une macro word
("MacroTest").

Sur le site http://xlbysteph.free.fr//aideinformatique/interactionappli.htm

J'ai trouvé la macro suivante qui ne fonctionne pas !

La condition d'erreur est la suivante : erreur d'exécution '-21473525735
(80020003) impossible exécuter la macro spécifiée.

Sub PilotMacroWord()

Dim Wd As New Word.Application

Wd.WindowState = wdWindowStateMaximize

Wd.Visible = True

Wd.Run "MacroTest"

Wd.Quit

Dim oApp As Word.Application

On Error Resume Next

Set oApp = GetObject(, "Word.application.9")

If Err = 0 Then

oApp.Quit

End If

Set oApp = Nothing

End Sub

Quelqu'un a t-il une solution ?

Merci Joël

Joėl

unread,
Jun 20, 2002, 4:52:51 PM6/20/02
to
Excuser moi je crois que outlook a eu le hoquet!
Désolé!
Joël
"Joël" <aj...@planetis.com> a écrit dans le message de news:
aetemk$sau$1...@news6.isdnet.net...

Pierre Fauconnier

unread,
Jun 20, 2002, 4:55:25 PM6/20/02
to
Ou trop de beaujo HIPS...lais


"Joël" <aj...@planetis.com> a écrit dans le message de news:

aetfau$sqf$1...@news6.isdnet.net...

Denis Michon

unread,
Jun 20, 2002, 6:13:28 PM6/20/02
to
Bonsoir Joël,

Voici une macro qui devrait faire l'affaire :
--------------------------
Sub ExcuteMacroWord()

Dim Dc As Object
Dim Old As String

'conserve dans une variable le nom
'du classeur actif.
Old = ActiveWorkbook.Name

On Error Resume Next
'Si l'application est déjà ouverte, cette ligne va
'utiliser l'instance déjà ouverte pour ouvrir le fichier
Set Dc = GetObject(, "Word.application")
If Err <> 0 Then
Err.Clear
'si pas ouvert, un nouvelle instance de Word sera créée
Set Dc = CreateObject("Word.Application")
End If

Dc.documents.Open "C:\test.doc" 'Ouvrir le fichier Test.doc
Dc.Visible = True 'Or False 'Selon tes désirs
Dc.Run "toto" 'Exécuter la macro toto
Dc.documents("Test.doc").Close 'Ferme le document
Dc.Quit ' Ferme l'application Word
Set Dc = Nothing 'Libère la mémoire
Workbooks(Old).Activate 'Réactive le classeur d'origine

End Sub
----------------------

"Joël" <aj...@planetis.com> a écrit dans le message de news: aetemk$sau$1...@news6.isdnet.net...

Philippe Tulliez

unread,
Jun 20, 2002, 5:44:00 PM6/20/02
to
Bonsoir Joël,

Ce code fonctionne parfaitement
(ne pas oublier de référencer au préalable la bibliothèque d'objets de
Word ("Microsoft Word X.0 Object Library")

Sub PilotMacroWord()
Dim Wrd As Word.Application
Set Wrd = New Word.Application
Wrd.Visible = False ' ou True (au choix)
Wrd.Run "MacroTest"
Wrd.Quit
Set Wrd = Nothing
End Sub

Philippe

"Joël" <aj...@planetis.com> a écrit dans le message news:
aetemk$sau$1...@news6.isdnet.net...

Philippe Tulliez

unread,
Jun 20, 2002, 6:16:19 PM6/20/02
to
J'ai oublié d'ajouter que cela suppose dans cet exemple que la macro en
question se trouve dans Normal.dot
Philippe

"Philippe Tulliez" <ptul...@be.tf> a écrit dans le message news:
e2NVjNKGCHA.2484@tkmsftngp10...

Pierre Fauconnier

unread,
Jun 21, 2002, 2:31:28 AM6/21/02
to
Salut Philippe,

C'est pour cela que je m'étonnais de l'absence d'un document ouvert dans
Word. Cela étant, même si la macro se trouve dans normal.dot, elle fait
peut-être référence à un document tel que le document actif, ou quelque
chose du genre. Il faudrait donc que Joël vérifie que sa macro dans Word
peut fonctionner sans document ouvert.


--
Bon travail

Pierre Fauconnier
pierre.f...@idealgestion.com
"Les sept laids tuent" (Lewis Carol)
P.S. : Merci de signaler si les réponses sont satisfaisantes...

--
"Philippe Tulliez" <ptul...@be.tf> a écrit dans le message de news:
ePpG5eNGCHA.2096@tkmsftngp12...

Joėl

unread,
Jun 21, 2002, 5:58:43 AM6/21/02
to
Bonjour Philippe,
Bonjour Pierre .....(Hips.....Personnellement je préfère le Bordeaux....(au
moins il sent pas la banane, mais à chacun son truc....)
Bonjour Denis,
Merci à tous les trois de vos conseils.....
La réponse de Denis fonctionne parfaitement sur mon poste....
Au fait ces histoires d'ouverture d'instance ne me sont pas familière....
Si je comprend bien il faut créer une instance avec CreateObject lorsque
Word n'est pas ouvert.
A contrario si word est ouvert j'utilise GetObject.....Est ce bien cela?
Cordialement Joël


"Denis Michon" <denis....@cgocable.ca> a écrit dans le message de news:
cssQ8.20$BR6....@charlie.risq.qc.ca...

0 new messages