Bonjour à tous,

J'aimerais exécuter une macro automatiquement lorsque la valeur d'une cellule change.
Le problème est que la cellule contient une formule et ma macro ne fonctionne pas (sauf si je change moi-même la valeur ce que je ne souhaite pas)

Voici mon code qui fonctionne très bien mais manuellement. Il consiste à changer la couleur (RGB) de
la forme (= objet dessin dénommé "ARA", "EPA" et "DHA") en fonction des valeurs entrées dans les cellules
E20; E21, et E22. Sauf que ces valeurs sont issues d'une formule (E20=SI(ESTERREUR(A4);0;A4) par exemple).


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Worksheet_Change(ByVal Target As Range) 
'Updateby Extendoffice 20160704 
 
If Intersect(Target, Range("E20:E22")) Is Nothing Then Exit Sub 
 
Select Case Target.Row 
	Case 20: Set sh = ActiveSheet.Shapes("ARA") 
	Case 21: Set sh = ActiveSheet.Shapes("EPA") 
	Case 22: Set sh = ActiveSheet.Shapes("DHA") 
End Select 
 
If IsNumeric(Target.Value) Then 
	If Target.Value >= 50000 Then 
		sh.Fill.ForeColor.RGB = RGB(255, 192, 0) 
	ElseIf Target.Value < 50000 And Target.Value >= 5000 Then 
		sh.Fill.ForeColor.RGB = RGB(251, 221, 41) 
 
	Else 
		sh.Fill.ForeColor.RGB = RGB(230, 230, 230) 
	End If 
End If 
End Sub