Remplissage de ligne avec conditions
Résolu
Fitz_Chev
-
Fitz_Chevalerie Messages postés 2 Statut Membre -
Fitz_Chevalerie Messages postés 2 Statut Membre -
Bonjour,
J'ai un petit souci sur une de mes macros.
Je cherche à identifier mes doublons sur ma colonne I et ensuite surligner toute la ligne en gris.
Pour identifier mes doublons j'ai fait une mise en forme conditionnelle sur ma colonne I. Je l'ai fait avec l'enregistrement de macro et ça me donne donc ça:
Donc ensuite, pour surligner mes lignes j'ai utilisé ça:
Le problème c'est que rien ne se passe. Je suis certain que cela viens de ma condition
Donc ma question est, quel est le problème dans ma condition, et comment y remédier?
Merci d'avance pour vos réponse.
PS: Je précise que j'ai besoin que ça sois sous forme de macro car cela viens s'intégrer dans une macro plus grande.
J'ai un petit souci sur une de mes macros.
Je cherche à identifier mes doublons sur ma colonne I et ensuite surligner toute la ligne en gris.
Pour identifier mes doublons j'ai fait une mise en forme conditionnelle sur ma colonne I. Je l'ai fait avec l'enregistrement de macro et ça me donne donc ça:
Columns("I:I").Select
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Donc ensuite, pour surligner mes lignes j'ai utilisé ça:
For i = [I65000].End(xlUp).Row To 2 Step -1
If Cells(i, 9).Interior.Color = 13551615 Then Rows(i & ":" & i).Interior.ColorIndex = 48
Next i
Le problème c'est que rien ne se passe. Je suis certain que cela viens de ma condition
If Cells(i, 9).Interior.Color = 13551615car avec une autre condition cela marche.
Donc ma question est, quel est le problème dans ma condition, et comment y remédier?
Merci d'avance pour vos réponse.
PS: Je précise que j'ai besoin que ça sois sous forme de macro car cela viens s'intégrer dans une macro plus grande.
1 réponse
-
Bonjour,
La couleur mise avec MFC n'est pas la couleur de la cellule mais uniquement le résultat de la mfc.
Il te faut donc faire ton test avec la condition que tu as mise dans la MFCDupeUnique = xlDuplicate
-
-
Bonjour,
Je me suis mal exprimé car je voulais dire qu'il fallait faire le même test que dans ta MFC mais "DupeUnique = xlDuplicate" est propre aux MFC.
Tu peux reprendre ta condition en déterminant les doubles ainsi :For i = [I65000].End(xlUp).Row To 2 Step -1 If Application.WorksheetFunction.CountIf(Range("I2:I" & [I65000].End(xlUp).Row), Cells(i, 9).Value) > 1 Then Rows(i & ":" & i).Interior.ColorIndex = 48 Next i
Avec NB.SI(ta_plage;ta_cellule) tu comptes les occurrences et s'il y en a plus d'une c'est un double.
-