Utilisation de plusieurs applications excels

cs_bricaud Messages postés 2 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 24 janv. 2008 à 23:44
cs_bricaud Messages postés 2 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 25 janv. 2008 à 14:18
Bonjour à tous !
c'est la première fois que je poste sur le forum, j'espère que vous allez pouvoir m'aider.

Il me manque quelques bouts de code VBA, nécessaire au bon fonctionnement de ma macro.
Je suis débutant , ce qui n'aide pas! petite histoire :

J'ai utilisé une macro qui fait appel à un logiciel (bloomberg). L'appel permet de générer une nouvelle application excel (un .exe - indépendante de la première ou se situe ma macro) avec une série de données dans un classeur. Je ne peux choisir le nom du classeur, ce peut être, par exemple, grid24.xls.

Je désirerais pouvoir activer le classeur générée par bloomberg qui se trouve dans la nouvelle application excel (.exe), copier les données dont j'ai besoin (ca je sais faire) fermer cette application excel sans la sauvegarder, activer à nouveau mon application initiale ou se situe la macro et recopier les données dans un de mes classeurs. 

Le code qui me serait utile est donc le suivant :
- savoir comment activer une autre application excel (.exe) via ma macro située dans le classeur de ma première application
- fermer l'application générée
- revenir à la première application.

Je vous fournis le code demain, si vous avez deja des idées... Je sais que ce n'est pas de mon niveau , mais ca me serait vrmt très utile.

Merci bcp par avance

Ben

1 réponse

cs_bricaud Messages postés 2 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 25 janvier 2008
25 janv. 2008 à 14:18
Comme promis  voici le code suivant dans un classeur excel :
Private Sub CommandButton1_Click()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>









 









Dim Plage As Range











 









Set Plage = Range(Cells(3, 1), Cells(3, 1).End(xlDown))












NbrePlage = WorksheetFunction.CountA(Plage)












Range("A1").Value = NbrePlage











 









For i = 1 To NbrePlage











 










    blp = DDEInitiate("Winblp", "bbk")













    Call DDEExecute(blp, "" & Cells(2 + i, 1).Text & "<Equity>ANR<GO><Down><GO>")













   

Call DDETerminate(blp)










Next






 







End Sub




La première partie sélectionne des codes références dans une feuille excel pour les utiliser dans un logiciel (bloomberg)

La fonction "Call DEEExecute" fait appel au programme blp (bloomberg) me générant un nouveau classeur avec des données précises dans une nouvelle application .exe excel. pour chaqu'un des codes références de ma feuille excel. En gros, je peux donc avoir 50 applications excel ouverte si je simule le code avec 50 codes références (le bordel !)
Serait-il possible de switcher d'une application.exe à une autre ? afin de prendre les données voulues puis fermer chaque application .exe à travers une ligne de code dans ma boucle ?

Merci énormement pour vos réponses !
J'essaye d'être le plus clair possible, si d'autres éléments je suis plus qu'à votre disposition !

Ben
0
Rejoignez-nous