Détecter changement dans une cellule avec formule

Airone784

XLDnaute Occasionnel
Bonsoir à tous,

Voici mon petit souci que je rencontre et que je n'arrive pas à résoudre.

J'ai une cellule CK1=BT40 et BT40=A1+A2.

Je souhaite lancer une macro lorsque CK1 change par l'évènement worksheet_change.
Le problème, c'est qu'excel ne détecte pas le changement de la valeur de CK1. Y a-t-il une solution à cette difficulté???

Merci d'avance pour votre aide.

Bonne soirée ;)
 

CBernardT

XLDnaute Barbatruc
Re : Détecter changement dans une cellule avec formule

Bonsoir Airone 784,

J'ai l'impression que tu prends le problème à l'envers ! Les changements possibles réels sont les valeurs saisies en A1 ou A2. Les autres cellules ne change pas, ce n'est que les résultats des formules qui changent.
 

Airone784

XLDnaute Occasionnel
Re : Détecter changement dans une cellule avec formule

Je suis d'accord avec toi. Ce que je n'ai pas dit ce que pour me faire comprendre j'ai simplifié la chose en disant que ma cellule CK1 changée en fonction de BT40 qui change en fonction de A1 et A2. Sauf que si je vais plus loin dans ma feuille, il s'avère que BT40 change en fonction d'une multitude de cellules qui sont réparties dans la feuille. Que faire ??

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("A1,A2,B47,C74,etc...")) Is Nothing Then
Else
Mon code
End If

End Sub
C'est pas très pratique si je dois préciser toutes les cellules... :(
 

CBernardT

XLDnaute Barbatruc
Re : Détecter changement dans une cellule avec formule

Re,

Sans exemple concret, je ne guère t'aider davantage.

A+
 

Mytå

XLDnaute Occasionnel
Re : Détecter changement dans une cellule avec formule

Salut le forum

Utilise l'événement Calculate
Code:
Private Sub Worksheet_Calculate()
Mytå
 

Airone784

XLDnaute Occasionnel
Re : Détecter changement dans une cellule avec formule

Ok myta sauf que l’évènement calculate intervient des qu'une cellule avec formule change (je crois que l'on ne peut pas préciser les cellules dont le résultat de la formule change) ce qui ne répond pas à mon besoin puisque certaine cellule avec formule peuvent changer et je ne veux pas pour autant que la macro se lance.

A+
 

Airone784

XLDnaute Occasionnel
Re : Détecter changement dans une cellule avec formule

Bonsoir Airone 784,

J'ai l'impression que tu prends le problème à l'envers ! Les changements possibles réels sont les valeurs saisies en A1 ou A2. Les autres cellules ne change pas, ce n'est que les résultats des formules qui changent.
Après réflexion autour de ta bonne remarque Bernard, j'ai peut être une solution en ré-aménageant ma feuille ce qui aurait pour conséquence de regrouper les cellules où je change les valeurs et qui induisent un changement du résultat de la formule en CK1.
Je reviens vers toi et le forum si je m'embourbe de nouveau.

Merci ;)
 

raphde

XLDnaute Nouveau
Re : Détecter changement dans une cellule avec formule

Bonjour,

je souhaite savoir s'il existe une fonction qui détecte s'il y a une modification dans une cellule et si oui lui donner des instructions de comparaison.
Je vous explique mon problème, je développe une Macro qui me permet de suivre des positions (boursières).

En colonne 11 j'ai le cours d'une valeur qui varie en permanence (fonction excel qui récupère le cours via Bloomberg)
En colonne 15 j'ai l'objectif de cours et en colonne 16 le Stop.

Je souhaite donc que si le cours > objectif alors MsgBox "XXXX"
si le cours < Stop alors MsgBox "YYYYY".

J'ai réussi a donner les instruction, mais la macro ne détecte pas les variations automatiques du Cours, mais seulement si je le modifie à la main...

Quelqu'un pourrait il m'aider SVP?

Merci beaucoup!
 

CBernardT

XLDnaute Barbatruc
Re : Détecter changement dans une cellule avec formule

Bonjour raphde et le forum,

Peut-être une adaptation de ce code :

Macro qui détecte les changements :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("K1:K1000")) Is Nothing Then
Application.EnableEvents = False
If Range("K1") < Range("P1") Then
MsgBox "XXXX"
ElseIf Range("K1") > Range("O1") Then
MsgBox "YYYY"
End If
End If
End Sub

Macro qui crée le changement :
Sub MacroDéfinissantLeChangementDeValeur()
Application.EnableEvents = True
' Ceci pour l'exemple
Range("K1") = Range("K1") + 1
End Sub
 

raphde

XLDnaute Nouveau
Re : Détecter changement dans une cellule avec formule

Bonjour,

Merci pour votre aide mais le MsgBox ne s'affiche pas en cas de depassement à la hausse ou à la baisse.

Je vous remercie
 

Discussions similaires


Haut Bas