Colorer des lignes en fonction des valeurs de cellule

Résolu/Fermé
MagBota Messages postés 3 Date d'inscription mercredi 19 mars 2014 Statut Membre Dernière intervention 24 mars 2014 - 19 mars 2014 à 07:05
MagBota Messages postés 3 Date d'inscription mercredi 19 mars 2014 Statut Membre Dernière intervention 24 mars 2014 - 19 mars 2014 à 09:24
Bonjour,

je travaille sur Excel 2007.
Je cherche à automatiser la manip de coloration d'une ligne en fonction de la valeur des cellules d'une colonne.
Je m'explique : j'ai utilisé la Mise en Forme Conditionnelle pour colorer les lignes dont la valeur des cellules de la colonne B sont identiques. (formule : =$B2=$B$15 en jaune par ex)
Cependant, mon fichier comprend 5000 lignes, avec plusieurs centaines de valeurs différentes dans ma colonne B. Ce qui rend cette technique bien fastidieuse si je veux colorer toutes les lignes.
Mon objectif de base consiste à repérer facilement les lignes ayant la même valeur dans la colonne B.
Je pensais à une fonction (itérative ?) qui "regarde" chaque cellule de la colonne B, et colore les lignes de la même couleur (en jaune par ex) tant que les valeurs des cellules de la colonne B sont identiques, puis qui change de couleur (ou qui ne colore pas) quand on rencontre une cellule de valeur différente, puis qui recolore en jaune lorsqu'on rencontre de nouveau une cellule différente, etc...

En sachant que je suis malheureusement novice dans ce genre de manip.

Une idée ou une petit coup de pouce ?

Merci d'avance !
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
19 mars 2014 à 07:34
Bonjour
pas très facile à comprendre votre demande

Voyez deux cas:

colorer en jaune toutes les cellules qui ont plus d'une fois une valeur quelque soit leur position:

=NB.SI(B:B;B1)>1

colorer en jaune une suite de cellule de la même valeur:

=B1=B2

crdlmnt
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
19 mars 2014 à 08:17
Bonjour,

J'ai compris ta demande différemment.
Si tu souhaites mettre en évidence chaque changement de valeur dans la colonne B , tu peux utiliser la macro suivante.

Sub Colorer()
Dim i As Long
Dim Cel As Range
Dim Couleur
Couleur = Array(6, 0)
For Each Cel In Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row)
If Cel <> Cel.Offset(-1) Then i = i + 1
Cel.EntireRow.Interior.ColorIndex = Couleur(i Mod 2)
Next Cel
End Sub

A+
0
MagBota Messages postés 3 Date d'inscription mercredi 19 mars 2014 Statut Membre Dernière intervention 24 mars 2014
19 mars 2014 à 09:24
Désolée, ce n'était en effet pas forcément très clair
(difficile quand on est le nez dedans).

Mais Gyrus, c'est exactement ce que je voulais !
Magique...
plus qu'à se familiariser au langage et décortiquer tout ça :p

Merci beaucoup !
0