Quelqu'un as t-il une experience dans les liens DDE Bloomberg dans
Excel ?
J'ai de gros problèmes de performances sur une feuille avec des mises
à jour de prix et un recalcul permanent qui consome toutes les
ressources de la machine.
Tu devrais préciser un peu : ta version d'excel, le type de problème etc...
j-p
patrick.velasco
J'utilise plusieurs feuilles excel 97 avec en moyenne 3.000 connexion DDE Bloomberg pour recuperer dans les 15.000 fields de prix en temps réel. Les API Bloomberg sont directement utilisées dans la feuille, pas de macro ni de VB.
J'ai l'impression que la mise à jour d'un prix via le DDE entraine systematique le recalcul de la feuille, du coup excel est constament en cours de recalcul et la machine est à 100% CPU en permanence. Ce qui signifie que mon traitement n'est en fait pas en temps réel (puisque à 100% de CPU on attend forcement). Par ailleurs je dois encore ajouter d'autres lignes, ce qui visiblement ne sera pas possible sans degrader la qualité du service.
J'avais pensé à diminuer l'interval de recalcul en le forcant à toutes les 2 secondes afin d'aléger la charge. Pour cela j'ai mis la feuille en calcul manuel et forcé le recalcul via la fonction OnTime. Mais cela ne fonctionne pas, d'une part le temps d'attente n'est pas respecté dès que je travaille avec les API Bloomberg (il y probablement d'autres calculs forcés quelque part) et d'autre part pendant l'attente les liens DDE ne mettent pas à jour les prix.
Soit cette solution n'est pas la bonne, soit je m'y prend mal. Quelqu'un aurait-il une autre idée pour limiter le calcul à un interval régulier ?
J'ai aussi essayé de limiter la mise à jour des liens DDE à plusieurs seconde mais la encore le recalcul après se passe mal et prend encore plus de temps ...
Merci
Patrick
J'utilise plusieurs feuilles excel 97 avec en moyenne 3.000 connexion
DDE Bloomberg pour recuperer dans les 15.000 fields de prix en temps
réel. Les API Bloomberg sont directement utilisées dans la feuille,
pas de macro ni de VB.
J'ai l'impression que la mise à jour d'un prix via le DDE entraine
systematique le recalcul de la feuille, du coup excel est constament
en cours de recalcul et la machine est à 100% CPU en permanence. Ce
qui signifie que mon traitement n'est en fait pas en temps réel
(puisque à 100% de CPU on attend forcement). Par ailleurs je dois
encore ajouter d'autres lignes, ce qui visiblement ne sera pas
possible sans degrader la qualité du service.
J'avais pensé à diminuer l'interval de recalcul en le forcant à toutes
les 2 secondes afin d'aléger la charge. Pour cela j'ai mis la feuille
en calcul manuel et forcé le recalcul via la fonction OnTime. Mais
cela ne fonctionne pas, d'une part le temps d'attente n'est pas
respecté dès que je travaille avec les API Bloomberg (il y
probablement d'autres calculs forcés quelque part) et d'autre part
pendant l'attente les liens DDE ne mettent pas à jour les prix.
Soit cette solution n'est pas la bonne, soit je m'y prend mal.
Quelqu'un aurait-il une autre idée pour limiter le calcul à un
interval régulier ?
J'ai aussi essayé de limiter la mise à jour des liens DDE à plusieurs
seconde mais la encore le recalcul après se passe mal et prend encore
plus de temps ...
J'utilise plusieurs feuilles excel 97 avec en moyenne 3.000 connexion DDE Bloomberg pour recuperer dans les 15.000 fields de prix en temps réel. Les API Bloomberg sont directement utilisées dans la feuille, pas de macro ni de VB.
J'ai l'impression que la mise à jour d'un prix via le DDE entraine systematique le recalcul de la feuille, du coup excel est constament en cours de recalcul et la machine est à 100% CPU en permanence. Ce qui signifie que mon traitement n'est en fait pas en temps réel (puisque à 100% de CPU on attend forcement). Par ailleurs je dois encore ajouter d'autres lignes, ce qui visiblement ne sera pas possible sans degrader la qualité du service.
J'avais pensé à diminuer l'interval de recalcul en le forcant à toutes les 2 secondes afin d'aléger la charge. Pour cela j'ai mis la feuille en calcul manuel et forcé le recalcul via la fonction OnTime. Mais cela ne fonctionne pas, d'une part le temps d'attente n'est pas respecté dès que je travaille avec les API Bloomberg (il y probablement d'autres calculs forcés quelque part) et d'autre part pendant l'attente les liens DDE ne mettent pas à jour les prix.
Soit cette solution n'est pas la bonne, soit je m'y prend mal. Quelqu'un aurait-il une autre idée pour limiter le calcul à un interval régulier ?
J'ai aussi essayé de limiter la mise à jour des liens DDE à plusieurs seconde mais la encore le recalcul après se passe mal et prend encore plus de temps ...
Merci
Patrick
patrick.velasco
En fait j'ai déja quatre machines rapides ou tourne 4 excell avec cette fonction, la prochaine etape serai des bi-processeur mais avec cette version de NT et d'excell il y toute les chances pour que ca ne serve à rien.
Coté Bloomberg c'est pas terrible non plus, si ce n'est qu'il faut en faire moins (et acheter d'autres licences ....)
Comme les données changent en permanance je ne vois pas très bien comment utiliser la fonction que tu m'indique ?
En fait j'ai déja quatre machines rapides ou tourne 4 excell avec
cette fonction, la prochaine etape serai des bi-processeur mais avec
cette version de NT et d'excell il y toute les chances pour que ca ne
serve à rien.
Coté Bloomberg c'est pas terrible non plus, si ce n'est qu'il faut en
faire moins (et acheter d'autres licences ....)
Comme les données changent en permanance je ne vois pas très bien
comment utiliser la fonction que tu m'indique ?
En fait j'ai déja quatre machines rapides ou tourne 4 excell avec cette fonction, la prochaine etape serai des bi-processeur mais avec cette version de NT et d'excell il y toute les chances pour que ca ne serve à rien.
Coté Bloomberg c'est pas terrible non plus, si ce n'est qu'il faut en faire moins (et acheter d'autres licences ....)
Comme les données changent en permanance je ne vois pas très bien comment utiliser la fonction que tu m'indique ?
Jp Pradier
Eh bien, si tu sais que, par exemple, la dernière mise à jour est en A3000 :
Tu mets le mode recalcul en manuel Tu utilises l'événement Worksheet_change ( et non selection_change comme dit plus haut ) sur la cellule A3000 pour faire le calcul de ta feuille pendant les 2-3 minutes avant le prochain raffraichissement. Par contre si ta mise à jour s'effectue obligatoirement toutes les 10 secondes, ca ne suffirat peut-etre pas.
j-p
Eh bien, si tu sais que, par exemple, la dernière mise à jour est en A3000 :
Tu mets le mode recalcul en manuel
Tu utilises l'événement Worksheet_change ( et non selection_change comme dit plus haut ) sur la cellule A3000 pour faire
le calcul de ta feuille pendant les 2-3 minutes avant le prochain raffraichissement. Par contre si ta mise à jour
s'effectue obligatoirement toutes les 10 secondes, ca ne suffirat peut-etre pas.
Eh bien, si tu sais que, par exemple, la dernière mise à jour est en A3000 :
Tu mets le mode recalcul en manuel Tu utilises l'événement Worksheet_change ( et non selection_change comme dit plus haut ) sur la cellule A3000 pour faire le calcul de ta feuille pendant les 2-3 minutes avant le prochain raffraichissement. Par contre si ta mise à jour s'effectue obligatoirement toutes les 10 secondes, ca ne suffirat peut-etre pas.