cs_bricaud
Messages postés2Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention25 janvier 2008
-
24 janv. 2008 à 23:44
cs_bricaud
Messages postés2Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention25 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.
cs_bricaud
Messages postés2Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention25 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 !