Bonjour à tous,
L'objectif de ce fichier consiste à comparer l'évolution des prix au cours du temps. Lorsque le prix augmente j'aimerai que la cellule deviennent rouge, si le prix baisse la cellule devient verte et si le prix reste le meme la cellule reste blanche.
Ca ressemble beaucoup a de la mise en forme conditionnel mais la où ca se complique c'est quand la cellule de référence pour comparer n'est pas fixe ( pas toujours dans la premiere colonne)
Vous trouverez ci-joint le fichier pour que ca soit plus claire.
voici un exemple pour la premiere ligne
1- - 2 - 3 - -
- 4 - 2 - - -
la cellule de reference est 1 puis on continue de parcourir la ligne 2 > 1 donc la cellule devient rouge.
La cellule de reference devient maintenant 2, on continue de parcourri la ligne, il trouve une valeur non null qui est 3, 3 > 2 donc la cellulle devient rouge.
Pour la deuxieme ligne : on commence a parcourir la ligne premiere valeur non nul est 4 elle devient la cellule de reference. On continue a parcourir la ligne, deuxieme valeur non nul est 2 on compare a 4 et la cellule devient verte car 2 inferieur a 4.
1. J'ai essayé la mise en forme conditionnel mais je ne suis pas capable de faire en sorte que la cellule de référence se modifie
2. En vba voici un debut de code :
Public Sub comparaison()
Dim lig As Long
Dim col As Long
Dim first_value As Double
Dim second_value As Double
For lig = 1 To 3
For col = 1 To 5
If Not IsEmpty(Sheet1.Cells(lig, col).Value) Then
first_value = Sheet1.Cells(lig, col).Value
End If
Next col
For col = col + 1 To 5
If Not IsEmpty(Sheet1.Cells(lig, col).Value) Then
second_value = Sheet1.Cells(lig, col).Value
End If
Next col
Next lig
End Sub
mais plusieurs probleme se pose :
- je n'arrive pas a continuer a parcourir la ligne à cause du exit FOR
- Comment faire pour recommencer a comparer les valeurs mais en faisant en sorte que la cellule de reference deviennent L'ancienne "second_value" et que la boucle continue tout au long de la ligne.
J'espere que c'Est assez claire et votre aide serait vraiment tres apprécié. Je sais que ca se fait je n'arrive juste pas à trouver la logique derrière ca.
Merci pour votre aide