Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Worksheet_Change

6 réponses
Avatar
BHY
Maintenant que j'ai découvert les Events Excel j'essaie de creuser mais je
n'ai pas trouver la solution pour déclencher l'événement seulement quand le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule précise en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que l'événement se
déclenche pas quand je saisie mais quand le résultat de la formule qui est en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY

6 réponses

Avatar
Daniel
Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de A1 dans
une variable publique à l'ouverture, vérifier le changement de valeur dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser mais je
n'ai pas trouver la solution pour déclencher l'événement seulement quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule précise en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que l'événement se
déclenche pas quand je saisie mais quand le résultat de la formule qui est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY


Avatar
BHY
Merci pour ta réponse,
aurais-tu des exemples de codes avec Worksheet_Calculate() ?
--
BHY



Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de A1 dans
une variable publique à l'ouverture, vérifier le changement de valeur dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser mais je
n'ai pas trouver la solution pour déclencher l'événement seulement quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule précise en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que l'événement se
déclenche pas quand je saisie mais quand le résultat de la formule qui est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY







Avatar
Daniel
Dans un module :

Public ValeurA

dans "thisworkbook" :

Private Sub Workbook_Open()
ValeurA = Sheets("Feuil1").Range("A1")
End Sub

Dans la feuille :

Private Sub Worksheet_Calculate()
If [Feuil1!A1] <> ValeurA Then
ValeurA = [Feuil1!A1]
' ici, ton code
End If
End Sub

Daniel
"BHY" a écrit dans le message de news:

Merci pour ta réponse,
aurais-tu des exemples de codes avec Worksheet_Calculate() ?
--
BHY



Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de A1
dans
une variable publique à l'ouverture, vérifier le changement de valeur
dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser mais
je
n'ai pas trouver la solution pour déclencher l'événement seulement
quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule précise
en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que l'événement
se
déclenche pas quand je saisie mais quand le résultat de la formule qui
est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY









Avatar
BHY
Le problème c'est que j'ai cru comprendre que Worsheet_calculate()
fonctionnait dès qu'on demande un recalcul de la feuille pa 'F9' mais ne se
déclenchait pas si le mode de calcul est automatique. Hors tout mon fichier
Excel est obligatoirement en calcul auto ...
--
BHY



Dans un module :

Public ValeurA

dans "thisworkbook" :

Private Sub Workbook_Open()
ValeurA = Sheets("Feuil1").Range("A1")
End Sub

Dans la feuille :

Private Sub Worksheet_Calculate()
If [Feuil1!A1] <> ValeurA Then
ValeurA = [Feuil1!A1]
' ici, ton code
End If
End Sub

Daniel
"BHY" a écrit dans le message de news:

Merci pour ta réponse,
aurais-tu des exemples de codes avec Worksheet_Calculate() ?
--
BHY



Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de A1
dans
une variable publique à l'ouverture, vérifier le changement de valeur
dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser mais
je
n'ai pas trouver la solution pour déclencher l'événement seulement
quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule précise
en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que l'événement
se
déclenche pas quand je saisie mais quand le résultat de la formule qui
est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY














Avatar
Daniel
Non, il se déclenche également en calcul auto.
Daniel
"BHY" a écrit dans le message de news:

Le problème c'est que j'ai cru comprendre que Worsheet_calculate()
fonctionnait dès qu'on demande un recalcul de la feuille pa 'F9' mais ne
se
déclenchait pas si le mode de calcul est automatique. Hors tout mon
fichier
Excel est obligatoirement en calcul auto ...
--
BHY



Dans un module :

Public ValeurA

dans "thisworkbook" :

Private Sub Workbook_Open()
ValeurA = Sheets("Feuil1").Range("A1")
End Sub

Dans la feuille :

Private Sub Worksheet_Calculate()
If [Feuil1!A1] <> ValeurA Then
ValeurA = [Feuil1!A1]
' ici, ton code
End If
End Sub

Daniel
"BHY" a écrit dans le message de news:

Merci pour ta réponse,
aurais-tu des exemples de codes avec Worksheet_Calculate() ?
--
BHY



Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de
A1
dans
une variable publique à l'ouverture, vérifier le changement de valeur
dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser
mais
je
n'ai pas trouver la solution pour déclencher l'événement seulement
quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule
précise
en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que
l'événement
se
déclenche pas quand je saisie mais quand le résultat de la formule
qui
est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY
















Avatar
BHY
Effectivement, çà marche
Super! Merci
--
BHY



Non, il se déclenche également en calcul auto.
Daniel
"BHY" a écrit dans le message de news:

Le problème c'est que j'ai cru comprendre que Worsheet_calculate()
fonctionnait dès qu'on demande un recalcul de la feuille pa 'F9' mais ne
se
déclenchait pas si le mode de calcul est automatique. Hors tout mon
fichier
Excel est obligatoirement en calcul auto ...
--
BHY



Dans un module :

Public ValeurA

dans "thisworkbook" :

Private Sub Workbook_Open()
ValeurA = Sheets("Feuil1").Range("A1")
End Sub

Dans la feuille :

Private Sub Worksheet_Calculate()
If [Feuil1!A1] <> ValeurA Then
ValeurA = [Feuil1!A1]
' ici, ton code
End If
End Sub

Daniel
"BHY" a écrit dans le message de news:

Merci pour ta réponse,
aurais-tu des exemples de codes avec Worksheet_Calculate() ?
--
BHY



Bonjour.
Tu peux utiliser Worksheet_Calculate(). Il faut stocker la valeur de
A1
dans
une variable publique à l'ouverture, vérifier le changement de valeur
dans
Worksheet_Calculate() et le cas échéant, stocker la nouvelle valeur.
Cordialement.
Daniel
"BHY" a écrit dans le message de news:

Maintenant que j'ai découvert les Events Excel j'essaie de creuser
mais
je
n'ai pas trouver la solution pour déclencher l'événement seulement
quand
le
résultat d'une cellule donnée change.

J'ai réussi à déclencher l'evénement en modifiant une cellule
précise
en
utilisant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellChange As Range
Set CellChange = Range("A1")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
etc ...
Ca marche si je saisie une valeur en A1, mais j'aimerai que
l'événement
se
déclenche pas quand je saisie mais quand le résultat de la formule
qui
est
en
A1 change. Est-ce possible ?
Si oui comment ?
Si non y-a-t-il une possibilité pour le faire autrement ?
Merci
--
BHY