Mises en formes conditionnelles changent

vdh_xavier

XLDnaute Junior
Bonjour à tous,

J'ai un tableau excel dans lequel j'ai plusieurs mises en formes conditionnelles (10-15), la plupart faisant une mise en forme de toutes les cellules d'une colonne selon leur contenu. Par exemple de $E$2:$E$9999, mettre le fond en rouge si cellule non-vide.

J'ai dans ma feuille excel aussi plusieurs macros qui font des filtres et qui trient du contenu, ici aussi la plupart selon le contenu des cellules d'une colonne à la fois.

Ces macros sont utilisées très souvent et il y a donc en permanence des filtres et des tris.

Après une utilisation de 1 ou 2 mois, mes mises en formes conditionnelles ne ressemblent plus à rien.

Il n'est plus mis $E$2:$E$9999, mais par exemple $E$6;$E$86:$E$88;$E$161:$E$167;$E$183:$E$2020;$E$11:$E$17;$E$8;$E$93:$E$159;$E$37:$E$84;$E$172:$E$177;$E$169:$E$170;$E$19;$E$27:$E$32;$E$21:$E$24;$E$35;$E$179;$E$90.

Et puis il y a une autre mise en forme avec $E$87, une autre avec $E$160, une autre avec $E$182 etc.

Finalement au niveau fonctionnement ça ne change rien, mais ce n'est pas pratique d'avoir une liste interminable de mises en forme conditionnelles si on veut un jour les changer.

Je me demande si cela est dû aux nombreux tris et filtres que je fais dans ce tableau excel.

Je vous joins le fichier pour plus de facilité et vous remercie d'avance pour votre aide.

Xavier
 

Pièces jointes

  • Tableau de bord avant homologation XV 06.05.13.xls
    642.5 KB · Affichages: 69
  • Tableau de bord avant homologation XV 06.05.13.xls
    642.5 KB · Affichages: 76
  • Tableau de bord avant homologation XV 06.05.13.xls
    642.5 KB · Affichages: 72

vdh_xavier

XLDnaute Junior
Re : Mises en formes conditionnelles changent

Bonsoir BrunoM45,

Merci d'abord d'avoir pris le temps d'ouvrir mon fichier.

Mea culpa pour les protections, je joins le même fichier sans protection.

Les macros "reprotègent" à chaque fois la feuille pour laquelle j'ai posé ma question (feuille "tableau de bord"), donc il vous faudra peut-être le mot de passe : c'est "xavier".

Merci d'avance

Xavier
 

Pièces jointes

  • Tableau de bord avant homologation XV 06.05.13.xls
    445 KB · Affichages: 35
  • Tableau de bord avant homologation XV 06.05.13.xls
    445 KB · Affichages: 38
  • Tableau de bord avant homologation XV 06.05.13.xls
    445 KB · Affichages: 39
C

Compte Supprimé 979

Guest
Re : Mises en formes conditionnelles changent

Salut Xavier,

Ce que je te propose est de ré-appliquer les MFC via VBA, tu peux le faire au moment souhaité
(par exemple : soit manuellement en lançant la sub, soit à la fermeture du classeur)

Voici le code
VB:
Sub MFC_ColE()
  Dim DLig As Long
  ' Avec la feuille
  With Sheets("Tableau de bord")
    ' Trouver la dernière ligne du tableau
    DLig = .Range("E" & Rows.Count).End(xlUp).Row
    ' Avec la plage de cellule
    With .Range("E6:E" & DLig)
      ' Supprimer les conditions, puis les appliquer de nouveau
      .FormatConditions.Delete
      .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Projet"""
      With .FormatConditions(.FormatConditions.Count)
        .StopIfTrue = False
        .SetFirstPriority
        With .Interior
          .PatternColorIndex = xlAutomatic
          .Color = 49407
          .TintAndShade = 0
        End With
      End With


      .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Correction"""
      With .FormatConditions(.FormatConditions.Count)
        .StopIfTrue = False
        .SetFirstPriority
        With .Interior
          .PatternColorIndex = xlAutomatic
          .Color = 5066944
          .TintAndShade = 0
        End With
      End With


      .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Envoi"""
      With .FormatConditions(.FormatConditions.Count)
        .StopIfTrue = False
        .SetFirstPriority
        With .Interior
          .PatternColorIndex = xlAutomatic
          .Color = 4059462
          .TintAndShade = 0
        End With
      End With


      .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Homologation"""
      With .FormatConditions(.FormatConditions.Count)
        .StopIfTrue = False
        .SetFirstPriority
        With .Interior
          .PatternColorIndex = xlAutomatic
          .Color = 15773696
          .TintAndShade = 0
        End With
      End With


      .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Attente homol"""
      With .FormatConditions(.FormatConditions.Count)
        .StopIfTrue = False
        .SetFirstPriority
        With .Interior
          .PatternColorIndex = xlAutomatic
          .Color = 10498160
          .TintAndShade = 0
        End With
      End With
    End With
  End With
End Sub

A+
 

vdh_xavier

XLDnaute Junior
Re : Mises en formes conditionnelles changent

Bruno,

Avez-vous écrit ce code vous-même ou est-il possible de l'écrire avec excel en enregistrant une macro? Parce que j'ai encore plus de mises en forme conditionnelles et j'avoue que je ne sais pas comment les écrire, ni comment trouver les codes couleur.

Bien à vous

Xavier
 

vdh_xavier

XLDnaute Junior
Re : Mises en formes conditionnelles changent

Salut Bruno,

C'est encore moi.

J'ai trouvé un moyen pour trouver les codes couleur.

En ce qui concerne les autres mises en forme conditionnelles, j'ai essayé de reprendre votre code et de le modifier, mais j'ai un message d'erreur (Argument ou appel de procédure incorrect).

Voici le code que j'ai fait à partir du votre:

'Colonne G

' Avec la plage de cellule
With .Range("G6:G" & DLig)
' Supprimer les conditions, puis les appliquer de nouveau
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=G6=ET(G6<>"";G6<AUJOURDHUI())"
With .FormatConditions(.FormatConditions.Count)
.StopIfTrue = False
.SetFirstPriority
With .Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(102, 51, 0)
.TintAndShade = 0
End With
End With
End With

Savez-vous ce que j'ai fait de faux?

Merci d'avance

Xavier
 

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 203
Membres
102 818
dernier inscrit
NeoMaint