Bonjour à tous,
Je suis face à un problème depuis une journée entière... 
En quelques mots, je veux colorier une ligne sur deux de mon fichier excel en conservant une bonne alternance des couleurs si jamais je supprime une ligne, ou filtre le tableau. Jusque là pas de soucis, j'ai fais mes recherches et je suis donc tombé sur une formule qui marche très bien :
=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$5;LIGNE($A$5:$A5)-LIGNE($A$5);;)));2)
Mais voici le problème :
Lorsque j'applique cette formule sur une range de mon tableau via une MFC, tout se passe bien. Je peux supprimer des lignes et filtrer mon tableau dans tous les sens, l'alternance des couleurs est conservée.
J'enregistre la macro en réalisant ma MFC, ce qui me donne :
1 2 3 4 5 6 7 8 9 10
| Range("A5:AG43").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$5;LIGNE($A$5:$A5)-LIGNE($A$5);;)));2)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False |
Je copie/colle cette macro dans mon VBA, l'appelle en toute fin de mon Sub dans lequel je réalise divers traitements et là, magie... Toutes mes lignes sont de la même couleur... L'alternance des couleurs n'existe même plus, ou parfois je vais avoir une ligne blanche qui va se balader au milieu de toutes les autres...
Vous me direz : "Quels sont les traitements que tu réalises ? Ils doivent avoir un impacte sur ta macro !" Et bien non. Pour tester, j'ai déjà fais tourner ma macro de bout en bout et seulement exécuté ma macro de mise en forme une fois la précédente terminée...
Quelqu'un aurait-il déjà rencontré ce problème ?
Merci d'avance.
Partager