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

Cordialement,