Mise en forme conditionnelle

Résolu
Bonjour,

Je suis actuellement obligée de travailler sur Excel 2003 et je suis bloqué par la limitation de mise en forme conditionnelle. Je pense avoir fait le tour des sites/forums proposant des solutions pour des problèmes similaires mais n'ai pas réussi à appliquer les solutions à mon cas. Je vous appelle donc au secours!!!
Je voudrai qu'en fonction de la valeur d'une cellule, la couleur de fond de la ligne varie.
Plus précisément, les cellules de la colonne BK peuvent prendre comme valeurs : "ACCEPTE","LITIGE","ATTENTE DR","EN COURS" et "RETARD". Je souhaite que lorsque la valeur est "ACCEPTE" la ligne soit verte, "LITIGE" en rouge,...

Je vous remercie par avance pour votre aide!!!!

4 réponses

  1. Bonsoir roxylady83,
    Changer la couleur, c'est tout à fait faisable .. mais pour combien de conditions ?
    1. Pour 5 conditions...
    2. Bonsoir

      Je ne vois que 2 conditions !

      D'après votre énoncé c'est ACCEPTE en vert et LITIGE en rouge !

      Je me trompe ?
  2. Bonsoir roxylady83,
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim Ligne As Integer, Colonne As Integer
        Dim i As Long, j As Long
        Dim LigneMin As Integer, LigneMax As Integer
        Dim ColonneMin As Integer, ColonneMax As Integer
        '
        LigneMin = 1: LigneMax = 10
        ColonneMin = 1: ColonneMax = 10
        '
        For i = LigneMin To LigneMax
            For j = ColonneMin To ColonneMax
                Select Case Cells(i, j).Value
                    Case Is < 0
                        Range(Cells(i, j), Cells(i, j)).Font.ColorIndex = 3
                    Case 0 To 99
                        Range(Cells(i, j), Cells(i, j)).Font.ColorIndex = 9
                    Case 100 To 999
                        Range(Cells(i, j), Cells(i, j)).Font.ColorIndex = 12
                    Case 1000 To 9999
                        Range(Cells(i, j), Cells(i, j)).Font.ColorIndex = 32
                    Case 10000 To 99999
                        Range(Cells(i, j), Cells(i, j)).Font.ColorIndex = 48
                End Select
            Next j
        Next i
    End Sub

    Les conditions se trouvent au niveau des "Case Is < 0" ou "Case Nombre To Nombre".
    Et pour les couleurs >> ColorIndex = Nombre
    Voilou
    1. Contributeur
      Bonjour

      essaies cette macro paramétrée
      Sub colorier_ligne(cellule) 
      Dim Lig As Integer 
      'If cellule.Column <> 63 Then Exit Sub 
      Lig = cellule.Row 
      
      Select Case cellule 
           Case Is = "ACCEPTE" 
                Rows(Lig).Interior.ColorIndex = 3 'rouge 
           Case Is = "LITIGE" 
                Rows(Lig).Interior.ColorIndex = 4 'vert 
           Case Is = "ATTENTE DR" 
                Rows(Lig).Interior.ColorIndex = 6 'jaune 
           Case Is = "EN COURS" 
                Rows(Lig).Interior.ColorIndex = 8 'bleu 
           Case Is = "RETARD" 
                Rows(Lig).Interior.ColorIndex = 7 'rose 
           Case Else 
                Rows(Lig).Interior.ColorIndex = xlNone 
      End Select 
      End Sub


      tu peux l'utiliser de 2 manières

      1/ parcours de la colonne BK

      for ligne=1 to 100 'dernière ligne a adapter 
         colorier_ligne cells(ligne,"BK") 
      next 


      2/ A la volée
      dans le module feuille concerné
      Private Sub Worksheet_Change(ByVal Target As Range) 
      If Intersect(Target, Columns("BK")) Is Nothing Then Exit Sub 
      colorier_ligne Target 
      End Sub


      pour choisir tes couleurs
      https://www.cjoint.com/?3LnjxB7fB0V
      Michel
      1. Merci michel_m pour les couleurs, même si cela ne m'étais pas destiné !
    2. Bonsoir,

      J'ai réussi en adaptant la proposition d'Heliotte.
      Merci à vous deux pour votre aide!!!