Mise en forme conditionnelle
Résolu
roxylady83
Messages postés
2
Statut
Membre
-
Heliotte Messages postés 1561 Statut Membre -
Heliotte Messages postés 1561 Statut Membre -
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!!!!
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
-
Bonsoir roxylady83,
Changer la couleur, c'est tout à fait faisable .. mais pour combien de conditions ? -
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 -
Bonjour
essaies cette macro paramétréeSub 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 -
Bonsoir,
J'ai réussi en adaptant la proposition d'Heliotte.
Merci à vous deux pour votre aide!!!