Mise en forme conditionnelle avancé

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

Bonjour,

un essai avec des MFC :

Attention à la place des valeurs nulles mettre une valeur qui stagne.

Si vous ne voulez pas qu'elles apparaissent, alors un formule de MFC : en B6 : =Et(b6<>A6) (format couleur police = blanc) s'applique à la même zone que les autres MFC.

@ bientôt

LouReeD

merci pour cette suggestion je vais regarder si je peux trouver une facon de contourner le probleme de la cellule vide.

Malheureusement dans le vrai fichier le tableau utilisé est un tableau croisé dynamique, je ne peux pas remplacer les cellules vides par un chiffre.

Bonjour

Malheureusement dans le vrai fichier le tableau utilisé est un tableau croisé dynamique...

Encore un exemple non représentatif où on perd du temps pour rien : fait un exemple réellement conforme à ton contexte... car même en VBA cela ne sera pas neutre

J'ai simplement voulu mettre un fichier simplifié pour vous aider...

Voici un fichier plus représentatif du probleme.

Merci

Re

Il faudra adapter en fonction de la 1ère colonne du TCD : ici G

merci!

Par contre quand j'essaie de l'adapter au vrai tableau ca ne met pas les bonnes couleurs aux bons endroits.

Pourriez-vous svp expliquer avec un peu plus de détails la formule pour que je puisse savoir quoi adapter ?

Le vrai tableau commence en G7 (equivalent du H4 dans mon fichier exemple), le tableau croisé dynamique contient 24 colonnes (à chaque nouveau mois une colonne va s'ajouter) et 1607 lignes.

Merci

RE

Le nombre de ligne set de colonnes du TCD importe peu.

Voir ci-joint formules + explications

Grâce à vos explications j'ai adapté la formule pour le TCD d'origine. J'ai remarqué que les couleurs étaient inversé ( rouge quand le prix baisse et vert quand le prix augmente) j'ai donc modifié la formule pour inversé cela mais les cellules vides devenaient verte.

Pour corriger ce problème il faut simplement ajouter G7<>"" à la fin de la formule verte et le problème sera réglé.

J'ai mis en pièce jointe le fichier final fonctionnel au cas où quelqu'un aurait le même problème.

Un grand merci à toi 78chris.

Bon week end.

Bonjour

Arf, j'avais effectivement compris les couleurs ainsi. Et j'avais donc traité les vides du côté < , suffisant, mais on peut border les 2 côtés…

Tu as su adapter, c'est ça l'important...

Rechercher des sujets similaires à "mise forme conditionnelle avance"