Déclencher une action si la valeur résultat d'une cellule a changé

escouger

XLDnaute Occasionnel
J'ai un tableau AAA dont la cellule C2 contient la formule suivante ='D:\FichiersIND\[Abid.xls]Feuil1'!$G$7
Le résultat de cette formule est par exemple 01/01/2015 correspondant à la cellule G7 du tableau nommé Abid.xls
Cette cellule C2 porte également un lien hypertext qui renvoie sur =D:\FichiersIND\Abid.xls
Lorsque je clique sur C2 j'ouvre donc abid.xls dans lequel je modifie la cellule G7 en tapant par exemple 01/01/2016
Je quitte le tableau abid.xls et constate que la cellule C2 du tableau AAA contient toujours la même formule, mais avec en résultat 01/01/2016....comme souhaité.
J'aimerais que le changement de la valeur résultat de C2 qui a passé de la valeur 01/01/2015 à 01/01/2016 déclenche une action ou une macro.
Comment faire ?

J'ai essayé avec "Private Sub Worksheet_Change(ByVal Target As Range)" mais ai constaté que cette action ne se déclenche que si la cellule (dans mon cas C2) a été cliquée (ce qui n'est pas le cas puisque le clic n'a fait que déclencher le lien Hypertext). Si le déclenchement s'exécutait sur l'évolution du résultat, cela ferait mon affaire car ce déclenchement se produirait après que la date ait changée et qu'elle soit donc devenue 01/01/2016.

Merci d'avance pour toutes vos suggestions
ESCOUGER
 

Staple1600

XLDnaute Barbatruc
Re : Déclencher une action si la valeur résultat d'une cellule a changé

Bonjour à tous

escourger
Il est d'usage sur les forums et notamment sur XLD de commencer son message par un petit Bonjour...
Tu devrais t'en souvenir toi qui lisa un mercredi soir vers 18h27 d'octobre 2011 la charte du forum, non ?

2 – Lorsqu’on rentre sur un fil, comme dans la vie de tous les jours, on est poli en disant « Bonjour ».

PS: Dans la charte, tu trouveras aussi ce conseil, ma foi, frappé au coin du bon sens:
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.

Joindre un fichier exemple aide souvent à mieux comprendre la question et offre une base sur laquelle tester nos éventuelles propositions.
 
Dernière édition:

escouger

XLDnaute Occasionnel
Re : Déclencher une action si la valeur résultat d'une cellule a changé

Bonjour,

Voici les fichiers pour tester.
Sur le bureau creer répertoire testge1 et son sous-répertoire testge2
dans testge1 copier le fichier TestGe.xls
dans testge2 copier le fichier abid.xls

Il est possible de possible de creer ces fichiers ailleurs mais dans ce cas il faudra adapter les cellules L2 et L3
L2 répertoire ou stocker TestGE.xls
L3 répertoire ou stocker Abid.xls
L2 et L3 peuvent être identiques.
Merci de ta compréhension
Escouger
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Déclencher une action si la valeur résultat d'une cellule a changé

Bonjour,

Exemple en PJ

On vérifie si [A8] a changé de valeur

Code:
Private Sub Workbook_Open()
   ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:="=" & Chr(34) & Sheets(1).[A8] & Chr(34)
End Sub

Private Sub Worksheet_Calculate()
  If [A8] <> Val([mémo]) Then
    MsgBox [mémo]
    ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:="=" & Chr(34) & Sheets(1).[A8] & Chr(34)
  End If
End Sub

JB
 

Pièces jointes

  • Calculate3.xls
    28.5 KB · Affichages: 40

job75

XLDnaute Barbatruc
Re : Déclencher une action si la valeur résultat d'une cellule a changé

Bonjour escouger, JM, JB,

JB peux-tu nous expliquer pourquoi tu utilises avec des Chr(34) = " :

Code:
ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:="=" & Chr(34) & Sheets(1).[A8] & Chr(34)
et non pas avec .Value :

Code:
ActiveWorkbook.Names.Add "mémo", Sheets(1).[A8].Value
Edit : ah oui, quand le séparateur décimal de l'ordi est la virgule, donc on peut aussi écrire :

Code:
Private Sub Worksheet_Calculate()
If [A8] <> Val(Replace([mémo], ",", ".")) Then
  MsgBox [mémo]
  ActiveWorkbook.Names.Add "mémo", Sheets(1).[A8].Value
End If
End Sub
A+
 
Dernière édition:

escouger

XLDnaute Occasionnel
Re : Déclencher une action si la valeur résultat d'une cellule a changé

Bonjour et merci.
Grâce à votre aide j'ai trouvé une solution à ma question.
Dans auto_open j'ai chargé 2 colonnes. L'une (C) avec la formule et l'autre (J) avec un copie "valeur" de la première.
J'ai placé dans la colonne C un lien hypertext vers un fichier X.
J'ai ensuite défini une Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
dans laquelle j'ai récupéré le contenu modifié de la cellule C.
J'ai comparé col C avec col J et ai positionné un indicateur (Public as string) selon le résultat de cette comparaison.
Enfin dans la Private Sub Worksheet_Calculate() j'execute ou non une macro selon cet indicateur.
Je réinitialise dans tous les cas l'indicateur.

Merci à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 195
Membres
103 763
dernier inscrit
p.michaux