Colorer cellules identiques en fonction d'une autre

yves03

XLDnaute Occasionnel
Bonsoir à tous,

Je me bat un peu avec mon fichier pour colorer les cellules identiques en colonne C, si la cellule qui est en colonne H est coloré

Avec une MFC je colore la cellule en colonne H si elle est > 5
Avec une MFC je colore la cellule de la même ligne en colonne C , mais j'aimerais pouvoir aussi colorer en colonne C les cellules qui ont le même contenu .

Exemple :
Dans mon fichier ligne 2172 , la cellule H2172 est coloré et la cellule C2172 est aussi coloré, mais il y a 3 autres cellules identiques en C2173, 2174 et 2175, il faudrait aussi que je puisse les colorer.
Et la je n'y arrive pas !!

Merci d'avance pour votre aide
 

Pièces jointes

  • SE - In progress L1-2018-05-04-08-47-15 V2.xlsx
    331.5 KB · Affichages: 41

job75

XLDnaute Barbatruc
Bonjour yves03, mapomme,

Ta formule mapomme met en couleur les cellules identiques même si elles sont très éloignées de la ligne de référence > 5.

Cela peut rendre la coloration incompréhensible.

Si l'on veut se limiter aux cellules contiguës on utilisera cette fonction VBA :
Code:
Function Contigues(c As Range) As Boolean
If c = "" Or c.Row = 1 Then Exit Function
Dim v, i&
v = c
For i = c.Row To 1 Step -1
    If Cells(i, 3) <> v Then Exit For
    If Cells(i, 8) > 5 Then Contigues = True: Exit Function
Next
For i = c.Row To Rows.Count
    If Cells(i, 3) <> v Then Exit Function
    If Cells(i, 8) > 5 Then Contigues = True: Exit Function
Next
End Function
Avec la formule de la MFC sur la colonne C entière :
Code:
=Contigues(C1)
Fichier .xlsm joint.

A+
 

Pièces jointes

  • SE - In progress L1-2018-05-04-08-47-15(1).xlsm
    388.6 KB · Affichages: 27

job75

XLDnaute Barbatruc
Bonjour yves03, mapomme, le forum,

Ceci ne change rien mais je préfère :
Code:
Function Contigues(c As Range) As Boolean
If c = "" Or c.Row = 1 Then Exit Function
Dim v, i&
v = c
For i = 1 To c.Row
    If c(2 - i) <> v Then Exit For
    If c(2 - i, 6) > 5 Then Contigues = True: Exit Function
Next
For i = 2 To 1048577 - c.Row
    If c(i) <> v Then Exit Function
    If c(i, 6) > 5 Then Contigues = True: Exit Function
Next
End Function
Fichier (2).

Bonne journée.
 

Pièces jointes

  • SE - In progress L1-2018-05-04-08-47-15(2).xlsm
    343 KB · Affichages: 30

Discussions similaires

Réponses
31
Affichages
917
Réponses
10
Affichages
200

Statistiques des forums

Discussions
312 160
Messages
2 085 837
Membres
102 999
dernier inscrit
francoisarg56