Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Figé un résultat sous condition

  • Initiateur de la discussion Initiateur de la discussion Davidc57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Davidc57

XLDnaute Occasionnel
Bonjour à tous,

J'en appel à votre aide (pour une fois lol) !!


Je dispose d'un fichier excel qui récupère des données sur Bloomberg en temps réel par rafraichissement automatique.

Je vous donne un cas concret pour expliquer mon problème :

En case A1 : J'ai la valeur 12
En case B1 : Je récupère une donnée sur Bloom
En case C1, j'ai la formule suivante :
=IF(B1>=A1,'OK','NOK')

Ma donnée en B1 va bouger pendant toute la journée. Il s'agit en fait de cours de bourse.

Bon, si B1 vaut 10, C1 vaut 'NOK'
Si B1 vaut 15, C1 vaut 'OK'

Mon problème est que si B1 >= A1, j'ai bien un 'OK', mais si à la fin de la journée B1<=A1, alors j'aurai 'NOK' en C1.

Comme je ne souhaite pas passer mon temps devant le fichier excel, je veux que si C1 vaut 'OK' à un moment donné, alors je dois avoir 'OK' pour toute la fin de la journée, quelque soit l'évolution de la donnée récupérée en B1 !!!

Vous me suivez ?

En fait, quand B1 change, il faut tester C1 et si C1 vaut 'OK', alors il faut enlever la formule en C1 en faisant un Copie Paste Valeur par exemple.


Pour ceux qui s'y connaissent en bourse, dans mon exemple, je passe un ordre de vente à cours limité (ici à 10 voir A1). Si à un moment de la journée mon cours atteint 10 ou le dépasse, alors cela signifie que mon ordre doit être exécuté. C'est justement l'objet du contrôle que je dois effectuer.

Si vous avez des questions, n'hésitez pas.
Merci d'avance pour votre aide.
 
Bonjour le Forum,
Bonjour davidc57,

En pièce jointe voila l'essai d'un débutant VBTiste,

pour voir le code clique droit sur le nom de la feuille => et visualiser

a l'ouverture en C1 tu as la formule et si C1 passe a ok la formule est remplacée par ok

Jocelyn [file name=davidc57.zip size=5517]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/davidc57.zip[/file]
 

Pièces jointes

Merci Jocelyn,


En fait, j'avais essayé ta proposition avant même de poster mon message sur ce forum.

Ca ne fonctionne pas car Bloomberg met à jour des valeurs de cellules, mais ne fait pas de sélection de cellule. Donc la sub n'est jamais appelé (sauf si je change en manuel bien sûr).

J'ai essayé la même fonction Worksheets_Change au lieu de Worksheets_SelectionChange, mais là ca ne marche pas non plus. Si seul la valeur d'une cellule change, ca ne suffit pas pour appelé la procédure. Or mes valeurs colonne B changent par le biais d'une formule qui fait la liaison avec Bloomberg, mais cette formule ne change pas elle, c'est peut-être pour cela que la procédure n'est pas appelé !

Enfin, tu es parti sur la même idée que moi. Malheureusement, je ne parviens pas à adapter à mon cas (rafraichissement auto via Bloom).

Quequ'un voit -il un autre moyen ?

J'ai souhaité appelé une procédure toutes les minutes, mais cette solution n'a pas été retenue par ma hiérarchie.

Imaginons :

à 14h00m00s B1 vaut 11
à 14h00m30s B1 vaut 12.1
à 14h01m00s B1 vaut 11.2

Si mon code tourne à 14h00m00s et à 14h00m00s, il ne détectera pas que à un moment donné on a dépassé A1 = 12.

On ne peut pas se permettre d'erreur, car un oubli, un ordre non exécuté et qui aurait du l'être peut avoir des conséquences importantes (impact financier pour le client et donc pour la banque qui va devoir le dédommager ....

Il me faut une méthode 'infaillible'.

Et oui, c'est la de bosser dans une banque. Sécurité, sécurité et encore sécurité .... LOL
 
re bonjour,
Bonjour andré,

bon effectivement si on ne selection rien dans la feuille la sub n'est pas appellée.

J'ai fait un essai en alimentant la cellule B1 de la feuille 1 par l'addition de celule B1 et B2 de la feuille 2 et j'ai changer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

par
Private Sub Worksheet_Calculate()

j'ai l'impression que cela fonctionne

Merci andré pour la solution que tu propose je ne connaissais pas

JOcelyn [file name=davidc57_20060602131216.zip size=5824]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/davidc57_20060602131216.zip[/file]
 

Pièces jointes

Bonsoir Jocelyn, bonsoir André,


J'ai bien galeré aujourd'hui avec cette histoire.
Et dire que j'ai râté le post d'André pour un rafraichissement. On a posté en même temps alors que je répondais à Jocelyn. Il me suffisait de faire F5, et d'avoir la réponse qu'il me fallait. Elle est magique cette possibilité que je ne connaissait pas !! Je viens de découvrir cela à l'instant et de tester, c'est tout simplement excellent. Grâce à cela, le contrôle sera rapide et efficace ! Imaginez, le temps que l'on aurait perdu à exécuter du code macro. Encore faut-il le trouver !!!

A chaque mise à jour d'un cours par Bloomberg, il faut appeler du code, mais je ne parviens toujours pas à me servir de ces updates comme éléments déclencheurs d'une macro !

Je suis certain que c'est possible mais je ne vais plus me prendre la tête avec ca, grâce à toi André alors merci beaucoup André !!

Un grand merci à Jocelyn. Je pense que tu as gagné beaucoup en découvrant l'astuce révélée par André. Comme quoi, aidez les autres, c'est s'aider soi-même.


Bon week-end à tous ! Moi je bosse pas lundi




B)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
414
Réponses
2
Affichages
244
Réponses
2
Affichages
328
Réponses
5
Affichages
665
W
Réponses
16
Affichages
602
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…