Bonjour à tous !
J'aimerais lancer une macro Excel à partir de Borland. est ce que qq'un a une idée sur la manière dont je dois m'y prendre ??
Merci d'avance ,
Linda
Bonjour à tous !
J'aimerais lancer une macro Excel à partir de Borland. est ce que qq'un a une idée sur la manière dont je dois m'y prendre ??
Merci d'avance ,
Linda
Commence déjà par regarder comment piloter Excel à partir de BCB :
http://lfe.developpez.com/Excel/
Ensuite pour lancer une macro Excel, tu fais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part vMSExcel.Exec(Procedure("Run") << MacroLocationAsAnsiString);
Meric pour le lien BCB.. j'en avais déjà pris connaissance et je suis maintenant bien familiariser avec Excel pour lui balancer des tables et de créer un tableau dynamique à partir de ces données..
Par rapport à ta réponse, je n'ai pas précisé que je programme sous Borland C++ 6 et que je n'ai pas la possibilité d'utiliser ke code que tu m'as envoyé..
Une autre question..Est-il possible de préciser le nom de ma macro lors de l'appel à celle-ci car je vais en créer plusieurs..
Merci bcp !
Linda
Pourtant ce code fonctionne correctement sous Borland C++ Builder 6 PRO. Qu'est ce qui te fait dire le contraire ?Envoyé par pilpagouna
C'est l'argument MacroLocationAsAnsiString.Envoyé par pilpagouna
et bien parce que pour me connecter à distance à Excel, j'utilise des TExcelApplication, TExcelWorkbook, TExcelWorksheet et que je n'utilise pas le type Variant vMSExcel..[/url][/code]
Il est certainement possible de lancer une macro Excel aussi à l'aide des composants Office que tu utilises (ceux-ci utilisent de toutes façons OLE). Malheureusement ces composants sont extrêmement mal documentés et je ne peux pas t'indiquer la syntaxe correcte. Essaie de voir s'il y a une méthode pour récupérer le Variant (objet OLE).
Effectivement, tu avais raison, en approfondissant les méthodes du TExcelApplication, j'en ai trouvé une qui renvoit un Variant (ExecuteExcel4Macro) prenant un paramètre wchar_t *String, longlcid...
Je vais essayer de voir ce que je peux faire avec ça...
Je te remercie bcp pour tes réponses![]()
Linda
En fait, il ya une commande Run dans laquelle on spécifie le nom du classeur excel ainsi que les paramètres de la macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TVariant Resultat = AnsiString("ModeleTriColl.xls!Macro2"); TVariant Param1 = GetCurrentDir(); ExcelApplication->Run(Resultat,Param1 , EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam);
Partager