Via un .VBS, ouvrir une macro d’un classeur déjà ouvert

Emmanuel75019

XLDnaute Nouveau
Bonjour à tous,

Un fichier VBS peut-il déclencher une macro d’un classeur déjà ouvert (sans préalablement l’ouvrir donc) ?
Si oui, comment ?


Pourquoi :
J’ai, d’un côté, un classeur Excel ouvert en « visible = false » (masqué) et contenant des macros ouvrant des userfoms et, de l’autre, un petit programme (Glovepie) qui a besoin de déclencher ces macros quand ça lui chante.
Glovepie peut communiquer avec d’autres applications via OSC (Open Sound Protocol) mais je n’ai rien trouvé de tel en VBA.
Il peut aussi exécuter des fichiers (avec possibilité de passer des paramètres, comme via CMD).
Jusqu’ici, il exécute des fichiers VBS qui, via les commandes « Workbooks.Open » et « Application.Run », ouvrent le classeur, déclenche la bonne macro puis referme le classeur.
Ce qui, vous l’auriez deviné, n’est pas optimal en terme de temps de réaction…

Bien cordialement,

Emmanuel
 
Dernière édition:

Emmanuel75019

XLDnaute Nouveau
Re : Via un .VBS, ouvrir une macro d’un classeur déjà ouvert

C'est bon, j'ai trouvé la solution à ce dernier problème (pour que l'userform s'affiche au lieu d'appaitre réduit dans la barre des taches) :
Code:
'Au début du module contant la macro qui appel l'userform:

Private Declare Function FindWindow& Lib "User32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLong& Lib "User32" Alias "SetWindowLongA" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function ShowWindow& Lib "User32" (ByVal hwnd&, ByVal nCmdShow&)
Dim hwnd&

'Dans la macro en question:
ShowWindow hwnd, 3

Merci beaucoup à vous :)

Bien cordialement,

Emmanuel