Colorer des lignes en fonction des valeurs de cellule [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
mercredi 19 mars 2014
Statut
Membre
Dernière intervention
24 mars 2014
-
Messages postés
3
Date d'inscription
mercredi 19 mars 2014
Statut
Membre
Dernière intervention
24 mars 2014
-
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 !

3 réponses

Messages postés
25207
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 août 2020
5 387
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
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
477
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+
Messages postés
3
Date d'inscription
mercredi 19 mars 2014
Statut
Membre
Dernière intervention
24 mars 2014

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 !