Bonjour,
Je souhaiterais emp=E9cher le calcul d'une fonction si=20
certaines conditions ne sont pas respect=E9es :
Dans le genre, calculer MaCellule (qui contient une=20
formule) seulement si LC(-2) est modifi=E9e (modification=20
intercept=E9e avec worksheet_change() ).
En bref, je voudrais faire un MaCellule.Calculate=20
seulement si une autre r=E9f=E9rence est modifi=E9e=20
(intercept=E9e par worksheet_change)...
Mon probl=E8me est que je n'arrive pas =E0 emp=E9cher le calcul=20
de ma formule.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Ne mets pas de formule dans la feuille mais fait le calcul directement dans l'évènement Worksheet_Change Ex : pour un calcul conditionné par la valeur de la cellule A1 : Faire la somme de B1:B3 en B4 si la valeur de A1 = 10 (dans le module de la feuille)
Private Sub Worksheet_Change(ByVal zz As Range) If zz.Address <> "$A$1" Then Exit Sub If zz = 10 Then [B4] = [sum(B1:B3)] Else [B4] = "" End Sub
AV
"Dush" a écrit dans le message news: 144101c387fb$6361f110$ Bonjour, Je souhaiterais empécher le calcul d'une fonction si certaines conditions ne sont pas respectées : Dans le genre, calculer MaCellule (qui contient une formule) seulement si LC(-2) est modifiée (modification interceptée avec worksheet_change() ). En bref, je voudrais faire un MaCellule.Calculate seulement si une autre référence est modifiée (interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul de ma formule.
Je ne sais pas si j'ai été clair...
Avez-vous des pistes ?
Merci.
Ne mets pas de formule dans la feuille mais fait le calcul directement dans
l'évènement Worksheet_Change
Ex : pour un calcul conditionné par la valeur de la cellule A1 :
Faire la somme de B1:B3 en B4 si la valeur de A1 = 10 (dans le module de la
feuille)
Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz = 10 Then [B4] = [sum(B1:B3)] Else [B4] = ""
End Sub
AV
"Dush" <yvandlouhy@aol.com> a écrit dans le message news:
144101c387fb$6361f110$a301280a@phx.gbl...
Bonjour,
Je souhaiterais empécher le calcul d'une fonction si
certaines conditions ne sont pas respectées :
Dans le genre, calculer MaCellule (qui contient une
formule) seulement si LC(-2) est modifiée (modification
interceptée avec worksheet_change() ).
En bref, je voudrais faire un MaCellule.Calculate
seulement si une autre référence est modifiée
(interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul
de ma formule.
Ne mets pas de formule dans la feuille mais fait le calcul directement dans l'évènement Worksheet_Change Ex : pour un calcul conditionné par la valeur de la cellule A1 : Faire la somme de B1:B3 en B4 si la valeur de A1 = 10 (dans le module de la feuille)
Private Sub Worksheet_Change(ByVal zz As Range) If zz.Address <> "$A$1" Then Exit Sub If zz = 10 Then [B4] = [sum(B1:B3)] Else [B4] = "" End Sub
AV
"Dush" a écrit dans le message news: 144101c387fb$6361f110$ Bonjour, Je souhaiterais empécher le calcul d'une fonction si certaines conditions ne sont pas respectées : Dans le genre, calculer MaCellule (qui contient une formule) seulement si LC(-2) est modifiée (modification interceptée avec worksheet_change() ). En bref, je voudrais faire un MaCellule.Calculate seulement si une autre référence est modifiée (interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul de ma formule.
Je ne sais pas si j'ai été clair...
Avez-vous des pistes ?
Merci.
Bourby
bonjour,
je ne sais pas si ça répondra à ta question....
1- tu ne déclares pas la fonction "volatile" 2- tu rajoutes un paramètre "bidon", qui sert à pointer sur la cellule (mettons A2) qui doit déclencher le recalcul.
De cette façon, quand tu modifies A2, le moteur d'inférence d'Excel va recalculer ta fonction.
Par exemple si ton code était:
Function maFonction(var1,var2) lignes de code end Sub
il suffit d'écrire:
Function maFonction(var1,var2, maCelluleBidon) lignes de code SANS "Application.volatile" end Sub
Dis_moi si ça marche comme tu le souhaites.
Bourby
"Dush" a écrit dans le message news: 144101c387fb$6361f110$ Bonjour, Je souhaiterais empécher le calcul d'une fonction si certaines conditions ne sont pas respectées : Dans le genre, calculer MaCellule (qui contient une formule) seulement si LC(-2) est modifiée (modification interceptée avec worksheet_change() ). En bref, je voudrais faire un MaCellule.Calculate seulement si une autre référence est modifiée (interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul de ma formule.
Je ne sais pas si j'ai été clair...
Avez-vous des pistes ?
Merci.
bonjour,
je ne sais pas si ça répondra à ta question....
1- tu ne déclares pas la fonction "volatile"
2- tu rajoutes un paramètre "bidon", qui sert à pointer sur la cellule
(mettons A2) qui doit déclencher le recalcul.
De cette façon, quand tu modifies A2, le moteur d'inférence d'Excel
va recalculer ta fonction.
Par exemple si ton code était:
Function maFonction(var1,var2)
lignes de code
end Sub
il suffit d'écrire:
Function maFonction(var1,var2, maCelluleBidon)
lignes de code SANS "Application.volatile"
end Sub
Dis_moi si ça marche comme tu le souhaites.
Bourby
"Dush" <yvandlouhy@aol.com> a écrit dans le message news:
144101c387fb$6361f110$a301280a@phx.gbl...
Bonjour,
Je souhaiterais empécher le calcul d'une fonction si
certaines conditions ne sont pas respectées :
Dans le genre, calculer MaCellule (qui contient une
formule) seulement si LC(-2) est modifiée (modification
interceptée avec worksheet_change() ).
En bref, je voudrais faire un MaCellule.Calculate
seulement si une autre référence est modifiée
(interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul
de ma formule.
1- tu ne déclares pas la fonction "volatile" 2- tu rajoutes un paramètre "bidon", qui sert à pointer sur la cellule (mettons A2) qui doit déclencher le recalcul.
De cette façon, quand tu modifies A2, le moteur d'inférence d'Excel va recalculer ta fonction.
Par exemple si ton code était:
Function maFonction(var1,var2) lignes de code end Sub
il suffit d'écrire:
Function maFonction(var1,var2, maCelluleBidon) lignes de code SANS "Application.volatile" end Sub
Dis_moi si ça marche comme tu le souhaites.
Bourby
"Dush" a écrit dans le message news: 144101c387fb$6361f110$ Bonjour, Je souhaiterais empécher le calcul d'une fonction si certaines conditions ne sont pas respectées : Dans le genre, calculer MaCellule (qui contient une formule) seulement si LC(-2) est modifiée (modification interceptée avec worksheet_change() ). En bref, je voudrais faire un MaCellule.Calculate seulement si une autre référence est modifiée (interceptée par worksheet_change)...
Mon problème est que je n'arrive pas à empécher le calcul de ma formule.