Rapporter les cellules dont la valeur change via leur formule - Évèment Calculate
Bonjour,
Je souhaite être averti par un message lorsque la valeur d'une cellule (ou plusieurs) est modifiée, en précisant que cette cellule se trouve sur une autre feuille à l'autre bout du classeur.
Une mise en forme conditionnelle (MFC) ne me servirait à rien, car étant sur une autre feuille, le but est justement de ne pas avoir à vérifier à chaque étape de mon travail si une valeur de la cellule a changé.
L'événement Change ne réagit pas, car: "Cet événement ne se produit pas lorsque les cellules sont modifiées pendant un recalcul" (Documentation Microsoft). C'est-à-dire qu'il faut que ça soit l'utilisateur (ou un lien externe) qui modifie directement la cellule pour que l'événement se déclenche. Or dans mon cas, les cellules sont modifiées via leur formule qui renvoie à des cellules dans d'autres feuilles.
Je me suis donc tourné vers l'événement Calculate, qui réagit si une cellule change de valeur après recalcule de sa formule.
Cependant, ce dernier se contente de signaler quelle feuille est affectée, mais pas quelle cellule... :?
C'est ce qu'il me manque.
Comment faire?
Voici mon code en l'état:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim TblNFl() As Variant
Dim StrNFl As String
Dim StrMsg As String
Dim Byt As Byte
TblNfl = Array("F1", "F2", "F3")
StrNFl = Sh.Name
StrMsg = "La feuille " & Chr(39) & StrNFl & Chr(39) & " a été impactée."
For Byt = 0 To UBound(TblNFl)
If StrNFl = TblNFl(Byt) Then
MsgBox StrMsg
Exit For
End If
Next Byt
End Sub |
En espérant avoir été suffisamment clair, n'hésitez pas à me demander dans le cas contraire.
Cordialement,