Condition dynamique

Bonjour

J'ai un soucis pour résoudre mon problème et je ne sais même pas si c'est réalisable ...

J'ai une cellule avec des valeurs dynamiques qui varient à la hausse ou à la baisse importés d'une base de données externe.

J'ai aussi deux autres cellules ou sont fixés une limite basse et une limite haute. J'aimerai que lorsqu'une valeur soit atteinte, la cellule concernée ( la limite ) soit remplis d'une couleur.

Le problème que je rencontre est que ma mise en forme est elle aussi dynamique donc lorsque la valeur repasse au dessus ou en dessous de ma limite, la cellule perd sa condition.

Est ce possible de faire en sorte que le résultat soit statique et ne s'opère qu'une fois ?

En gros, j'aimerai venir en fin de journée devant mon graphique excel et savoir si ma limite min ou max que j'ai au préalablement fixé a été atteinte ou traversé sans forcément le surveiller toute la journée.

Merci d'avance pour ceux qui vont se pencher sur ma question ;)

Have fun

Bonjour,

Par formule, je ne sais pas si c'est possible puisque je comprends qu'il n'y a qu'une cellule de cours.
Par contre, en VBA ça devrait être possible avec un déclenchement événementiel au moment de la mise à jour de la cellule dynamique. Ça vous permettrait de mémoriser le max. des cours ou un état 1 ou 0 en fonction du dépassement de seuil et faire votre mis en forme conditionnelle à partir de là.

Avec un fichier type ce serait possible de tester.

Bonjour et merci pour la piste

J'ai testé pas mal de chose mais sans succès.

Comme par exemple :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$e$25" Then
Call macro1
End If
End Sub

puis ma macro ( sans test c'est juste pour voir )

Sub macro1()
Range("A1").interior.Color = RGB(50, 200, 100)
End Sub

Mon objectif :

Lorsque e25 change la macro 1 s'exécute.

Mais c'est pas vraiment le cas :D

J'ai testé votre code en l'état.

Si vous remplacez $e$25 par $E$25 ça fonctionne.

Ca ne fonctionne pas chez moi :(

j'ai beau testé n'importe quel worksheet il ne se passe rien. Si je change la valeur de ma cellule à la main directement, c'est bien censé activer le worksheet ? Il y a t'il une option que j'aurai oublié pour activer ça ?

En ajoutant Application.EnableEvents = False et true dans mon code à résolu mon problème.

On avance :)

Bonjour,

Il ne vous reste plus qu'à mémoriser le dépassement de seuil dans une case.

Un essai avec en E25 la valeur dynamique, en F25 le seuil max. et en G25 l'enregistrement d'une valeur si dépassement.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$E$25" Then
    If Range("$E$25").Value > Range("$F$25").Value Then
        Range("$G$25").Value = 1
    End If
End If
End Sub

Ensuite, vous pouvez regarder l'état de G25 (1 ou 0) dans votre mise en forme conditionnelle.

top ! ca fonctionne merci

Rechercher des sujets similaires à "condition dynamique"