Comment exécuter une macro Excel avec paramètres depuis Word ?

Comment exécuter une macro Excel avec paramètres depuis Word ? - VB/VBA/VBS - Programmation

Marsh Posté le 05-01-2004 à 15:09:48    

Bonjour,
 
J'ai une macro Word 97 qui doit finir par lancer Excel 97 en ouvrant une feuille de calcul existante et exécuter la macro qu'elle contient en lui passant des paramètres.
 
J'utilise la commande Shell avec succès pour lancer Excel et ouvrir le document .xls mais je n'ai pas trouvé dans l'aide la syntaxe d'appel de la macro.
 
J'ai vu que le commutateur existe pour Word mais pas pour Excel.
 
Quelqu'un aurait-il une solution pour moi ?
 
(A part Auto_Open car je ne vois pas comment lui passer les paramètres).
 
Merci
 


---------------
Spok
Reply

Marsh Posté le 05-01-2004 à 15:09:48   

Reply

Marsh Posté le 05-01-2004 à 15:56:08    

N'utilise pas shell, mais dans ta macro word, crée un objet excel qui va ouvrir le fichier. ainsi, les deux macros pourront communiquer.

Reply

Marsh Posté le 05-01-2004 à 16:05:59    

Merci de ta réponse rapide.
Je me rends compte à quel point je suis nul car je ne vois pas ce que c'est que de créer depuis Word un objet Excel qui peut ouvrir un fichier, et encore moins comment les macros pourront communiquer.
 
Est-ce que tu peux m'aider (si c'est relativement simple) ou m'envoyer un exemple ?
 
Encore merci
 


---------------
Spok
Reply

Marsh Posté le 05-01-2004 à 16:20:01    

Je viens de me faire chier à faire un exemple : (en fait, je l'avais jamais fait, j'avais aucune idée de comment faire :D)
 
Crée une macro dans Word :
Déjà, avant, dans "référence", coche "Microsoft Office Excel" ou un truc comme ça, afin de pouvoir utiliser Excel depuis ta macro Word.
 


Sub tatouille()
'
' tatouille Macro
' Macro created 05/01/2004 by MagicBuzz
'
    Dim xls As Excel.Application
    Dim wkb As Excel.Workbook
     
    Set xls = New Excel.Application
    xls.Visible = True
     
    Set wkb = xls.Workbooks.Open("c:\toto.xls" )
    wkb.Application.Run "fillCell", "prout"
    wkb.Activate
End Sub


 
Et dans le fichier c:\toto.xls, crée la macro suivante :
 


Sub fillCell(val As String)
    Sheet1.Cells(1, 1) = val
    MsgBox (val)
End Sub


 
Micracle, la macro Excel récupère bien les paramètres de la macro Word :)


Message édité par MagicBuzz le 05-01-2004 à 16:20:38
Reply

Marsh Posté le 05-01-2004 à 16:36:55    

Vraiment très sympa de m'avoir fourni cet exemple complet.
Je viens de le copier-coller, je ne comprends pas tout et je bute encore sur une erreur de compilation "Type défini par l'utilisateur non défini" ! Ce qui n'est pas très clair mais sur lequel je vais faire des recherches tout seul pour ne pas t'embèter plus longtemps. J'espère juste que ce n'est pas parceque je bosse avec la version 97...
 
A charge de revanche !?!


---------------
Spok
Reply

Marsh Posté le 05-01-2004 à 16:47:28    

Dans l'éditeur VB de la macro Word, clique sur "outils > références" et ajoute "Microsoft Excel x.x Object Library"
 
http://magicbuzz.multimania.com/files/ref1.png
 
http://magicbuzz.multimania.com/files/ref2.png

Reply

Marsh Posté le 05-01-2004 à 16:49:00    

PS: j'ai jamais fait de macro avec Office 97. Pour avoir porté des macros de Office 2000 vers Office 97, je sais que je me suis heurté à plusieurs problèmes. J'espère qu'Office 97 prends bien en charge ce système. Logiquement, oui.

Reply

Marsh Posté le 05-01-2004 à 16:51:21    

Oui c'est ce que j'étais en train de faire pour finalement trouver Excel en fin de liste et en version 9.0 et maintenant cela fonctionne super bien...
 
Quand je pense que je cherchais depuis ce matin...
 
Merci mille fois !
 


---------------
Spok
Reply

Marsh Posté le 27-11-2012 à 20:02:50    

Bonjour,
 
Je déterre ce post, je cherche a faire la meme chose mais d'Excel vers Word
Version Mac 2004
 
Mon code Dans Excel :

Code :
  1. Sub GoToWord()
  2.     Set appWD = CreateObject("Word.Application" )
  3.     appWD.Visible = True
  4.     Set Docu = appWD.Documents.Open("Macintosh HD:Users:aristorcelli:Aiuta:19. DEV:MyWord.doc" )
  5.     appWD.Run "FromExcel", "Hello World"
  6. End Sub


 
Mon code Dans Word :

Code :
  1. Sub FromExcel(val As String)
  2.     MsgBox (val)
  3. End Sub


 
et la bug au niveau appWD.Run "FromExcel", "Hello World", ne trouve pas la macro, par contra, sans l'arguments, pas de soucis....
 
Si vous avez une idée ?
 
Thais

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed