Re : attribuer une couleur de fond à une cellule selon un résultat
Bonsoir à vous,
Pour Rperrie2, la macro est située dans le module de la feuille, comme le précise Etienne2323.
Voici le code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F15:F358")) Is Nothing Then
On Error Resume Next
With Target.Interior
.ColorIndex = Switch(Target.Value = "e", 34, _
Target.Value = "b", 43, _
Target.Value = "c", 38, _
Target.Value = "a", 18, _
Target.Value = "p", 39, _
Target.Value = "", -4142)
End With
On Error GoTo 0
ElseIf Not Application.Intersect(Target, Range("X15:X358")) Is Nothing Then
On Error Resume Next
With Target.Interior
.ColorIndex = Switch(Target.Value = 1, 4, _
Target.Value = 2, 45, _
Target.Value = 3, 6, _
Target.Value = 4, 3, _
Target.Value = 5, 41, _
Target.Value = "", -4142)
End With
On Error GoTo 0
End If
End Sub
Pour eutrophisation, le code fonctionne même avec des formules. Il s’agit de bien configurer la plage active de la macro évènementielle.
If Not Application.Intersect(Target, Range("F15:F358")) Is Nothing Then
Dans l’exemple joint, regarde dans la cellule X22, la coloration se fait sans problème même avec une formule.
Le seul problème existant avec cette macro, c’est qu’il est obligatoire de supprimer la valeur d’une cellule par la barre de formule afin que la cellule soit active au moment de la suppression de la valeur. La touche Suppr, efface la valeur mais n'active pas la cellule.