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:
En espérant avoir été suffisamment clair, n'hésitez pas à me demander dans le cas contraire.
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 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
Cordialement,
Partager