Bonjour,
Je viens assez souvent sur ce forum que je trouve très instructif et m'a permis de trouver les réponses à mes questions... sauf cette fois-ci, c'est pourquoi c'est à mon tour de vous poser une colle.
Je vous écris donc car je rencontre un problème.
J'ai besoin d'exécuter une macro VBA quand la valeur d'une cellule change. Pour cela j'ai testé le code suivant :
Ou le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ... ' Code VBA ... End If End Sub
Dans les 2 cas, si je change la valeur de la cellule A1 manuellement, le code VBA est bien exécuté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ... ' Code VBA ... End sub
Si c'est une macro VBA qui change la valeur de cette cellule, cela fonctionne aussi.
Mais si c'est une formule Excel qui change cette valeur du genre A1= B1+C1 (mais avec B1 et C1 d'une autre feuille pour m'assurer que ce n'est pas le changement de B1 ou C1 de la même feuille qui lance la procédure), j'ai bien la confirmation que rien ne se passe, la procédure Private Sub Worksheet_Change(ByVal Target As Range) n'est pas lancée. Je pense qu'il regarde la formule de la cellule (qui elle ne pas change) et non pas la valeur du résultat de la formule.
Avez-vous une idée pour y remédier ?
Merci d'avance pour votre aide.
Partager