Vba couleur cellule
panda567
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans une feuille excel, j'ai une colonne nommée "evaluation " qui est la colonne H. Dans cette colonne j'ai les évaluations des différents disons reporter sur chaque ligne. Cette évaluation est sur et j'aimerais colorier le fonds de la cellule uniquement ( pas la colonne entière ) selon la nnote contenue dans la cellule. J'ai réussi les conditions sans problèmes mais je n'arrive pas à
1) Faire que cette macros traite uniquement ma colonne H ou 8
2) Selectionner les valeurs des cellules de toute la colonne pour ne pas devoir faire un code uniquement avec des conditions pour chaque ligne.
Voici mon code :
Qqu pourrait il m'aider svp ? :)
Merci d'avance et bonne fête !
Dans une feuille excel, j'ai une colonne nommée "evaluation " qui est la colonne H. Dans cette colonne j'ai les évaluations des différents disons reporter sur chaque ligne. Cette évaluation est sur et j'aimerais colorier le fonds de la cellule uniquement ( pas la colonne entière ) selon la nnote contenue dans la cellule. J'ai réussi les conditions sans problèmes mais je n'arrive pas à
1) Faire que cette macros traite uniquement ma colonne H ou 8
2) Selectionner les valeurs des cellules de toute la colonne pour ne pas devoir faire un code uniquement avec des conditions pour chaque ligne.
Voici mon code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Color cell according to evaluation
'Target column 8 or H, column of evaluation and put the condition
If Target.Column = 8 Then
Valeur = Range.value
If Valeur < 5 Then 'If the evaluation is under 5 then the color of the cell will be black
Range.Interior.ColorIndex = 30
ElseIf Valeur = 5 Or Valeur = 6 Then 'If the evaluation is 5 or 6 then the color of the cell will be cyan
Range.Interior.ColorIndex = 46
ElseIf Valeur = 10 Then 'If the evaluation is 10 then the color of the cell will be blue
Range.Interior.ColorIndex = 3
ElseIf Valeur = 0 Or Valeur = 1 Then ' 'If the evaluation is 0 or 1 then the color of the cell will be red
Range.Interior.ColorIndex = 3
Else 'In other case, the cell will be white
Range.Interior.ColorIndex = 2
End If
End If
End Sub
Qqu pourrait il m'aider svp ? :)
Merci d'avance et bonne fête !
2 réponses
-
Bonjour,
Essaie cela
Option Explicit Dim Valeur As Variant Private Sub Worksheet_SelectionChange(ByVal Target As Range) For_X_to_Next_Ligne End Sub Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, Cell As Range, NoCol As Integer Dim NoLig As Long Dim DernLigne As Long DernLigne = Range("A1048576").End(xlUp).Row 'Instance de la feuille qui permet d'utiliser FL1 partout dans 'le code à la place du nom de la feuille Set FL1 = Worksheets("Feuil1") 'Fixe le N° de la colonne à lire NoCol = 8 'Utilisation du N° de ligne dans une boucle For ... Next For NoLig = 1 To DernLigne Valeur = FL1.Cells(NoLig, NoCol) With FL1.Range("H" & NoLig) If Valeur < 5 Then 'If the evaluation is under 5 then the color of the cell will be black .Interior.ColorIndex = 30 ElseIf Valeur = 5 Or Valeur = 6 Then 'If the evaluation is 5 or 6 then the color of the cell will be cyan .Interior.ColorIndex = 46 ElseIf Valeur = 10 Then 'If the evaluation is 10 then the color of the cell will be blue .Interior.ColorIndex = 3 ElseIf Valeur = 0 Or Valeur = 1 Then ' 'If the evaluation is 0 or 1 then the color of the cell will be red .Interior.ColorIndex = 3 Else 'In other case, the cell will be white .Interior.ColorIndex = 2 End If End With Next Set FL1 = Nothing End Sub
-
Bonjour,
Quelle version d'excel ?
Si >=2007 une simple MFC suffit.
eric