Mise en forme conditionnelle Excell 2003

Résolu
anso -  
 anso -
Bonjour,

Voici mon problème: j'aimerais surligner des maximums et des minimums relatifs et absolus dans mon tableau.
Pour ce faire, je demande de surligner en bleu le maximum de différents sous-groupes (et en rouge le minimum). Puis, j'aimerais souligner et mettre en gras le maximum et le minumum absolu (c'est-à-dire pour l'ensemble du tableau).

Le problème est que cela ne veut pas se faire simultanément (j'ai soit tous les max et min relatifs soit le max absolu, mais jamais les deux ensembles).

Je ne sais pas si j'ai été claire, mais en code VBA (le but est de faire une macro que je puisse utiliser pour différents tableaux de même format), voici ce que ça donne:

Sub Maxmin ( )

Range("D8:G10").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D8=MAX($D$8:$G$10)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D8=MIN($D$8:$G$10)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D13:G15").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D13=MAX($D$13:$G$15)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D13=MIN($D$13:$G$15)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D18:G20").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D18=MAX($D$18:$G$20)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D18=MIN($D$18:$G$20)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D23:G25").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D23=MAX($D$23:$G$25)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D23=MIN($D$23:$G$25)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D28:G30").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D28=MAX($D$28:$G$30)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D28=MIN($D$28:$G$30)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D33:G35").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D33=MAX($D$33:$G$35)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D33=MIN($D$33:$G$35)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D38:G40").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D38=MAX($D$38:$G$40)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D38=MIN($D$38:$G$40)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D43:G45").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D43=MAX($D$43:$G$45)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D43=MIN($D$43:$G$45)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

Range("D48:G50").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D48=MAX($D$48:$G$50)"
Selection.FormatConditions(1).Interior.ColorIndex = 23
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D48=MIN($D$48:$G$50)"
Selection.FormatConditions(2).Interior.ColorIndex = 17

' Maxmin absolu Macro

Range("D8:G50").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=D8=MAX($D$8:$G$50)"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Underline = xlUnderlineStyleDouble
End With
Selection.FormatConditions(1).Interior.ColorIndex = 23
End Sub

Encore merci de votre aide!

Anso
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    je ne sais pas si j'ai tout compris, tu cherches des mini maxi sur des plages courtes en un mini maxi sur la totalité de la plage
    ce qui fait 4 Format différents Bleu ou rouge, Bleu Gras ou Rouge Gras, avec les format conditionnels je ne crois pas que cela soit possible un fichier avec des exemples est nécessaire pour comprendre avec si possible le résultat escompté..
    0
    1. anso
       
      Bonjour,

      tu as parfaitement compris. On peut supprimer la condition min absolu afin de ne plus avoir que trois formats, mais je reste avec le problème de ne pas pouvoir exécuter les autres conditions simultanément.

      Comment je fais pour vous envoyer mon fichier Excell? (Désolée, mais l'informatique et moi...!)

      Merci pour ta réponse.

      anso
      0
  2. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    il y a une autre solution, puisque tu passes par macro, autant tout gérer par macro c'est beaucoup plus simple et provoquer, non pas une MFC mais une Mise ne Forme de la cellule à l'aide de la macro

    pour envoyer le fichier tu vase sur ce site : https://www.cjoint.com/
    tu cliques le bouton Choisissez un fichier
    tu cherches to fichier à joindre et tu le valides
    en dessous, creer le lien cjoint
    il travaille et t'affiche une nouvelle fenetre avec un lien que tu postes dans ta réponse

    @ te lire
    0
    1. anso
       
      Voici le lien, j'espère que ça va marcher!

      https://www.cjoint.com/?dlleXitmk4

      Comme tu le verras dans le fichier, j'ai appliqué la mise en forme uniquement sur la première partie du tableau.
      (et le max absolu, qui ne s'affiche pas, se trouve en D43).

      Par ailleurs, je ne tiens pas absolument à travailler avec un mise en forme conditionnelle. Si il existe un autre moyen pour y arriver, c'est bon pour moi!

      Encore merci pour l'aide!

      anso
      0
  3. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re:

    les MFc etant plus rapide qu'une macro, on va faire les MFC en relatif et la macro pour l'absolu
    on va se compliquer un peu les choser pour se les faciliter par la suite

    dans ton fichier, tu sélectionnes toutes ta feuille : MFC : Supprimer cocher 1, 2, 3 et valider
    tu supprimes ensuite la ligne 52 et 53 qui sont vides (pour aligner les 2 tableaux avec les n° de ligne)

    ensuite on crée une plage nommée glissante qui se positionnera en fonction de la ligne
    Menu Insertion / Nom / Définir
    le nom : maplage
    fais référence à : mettre la formule suivante : =DECALER(Feuil1!$D$8;ENT((LIGNE()-8)/5)*5;0;3;5)
    tu valides
    tu selectionnes ensuite ta plage D8:H51
    1ere MFC : la formule : =Min(maplage)=D8
    2eme MFC : la formule : =Max(maplage)=D8

    si tu as supprimé les 2 lignes vides que je t'ai indiquées, ces formules en MFC fonctionneront pour le 2eme tableau

    maintenant la macro : pour le Mini et Maxi Absolu
    Sub macro1()
        Dim cel As Range
        Range("D8:H51").Font.Bold = False
        For Each cel In Range("D8:H51")
            If cel = Application.WorksheetFunction.Max(Range("D8:H51")) Then
                cel.Font.Bold = True
            End If
            If cel = Application.WorksheetFunction.Min(Range("D8:H51")) Then
                cel.Font.Bold = True
            End If
        Next
    End Sub
    

    je n'ai pas fait le 2ème tableau mais il n'y a que les plages à adapter

    ton fichier en retour : https://www.cjoint.com/?dllLgxXI3X
    0
    1. anso
       
      C'est parfait, merci beaucoup!
      0