Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

comment mettre à jour automatiquement le résultat d'une fonction

0 views
Skip to first unread message

pascal duterme

unread,
Jan 7, 2001, 3:50:03 PM1/7/01
to
J'ai créé une fonction qui calcule une valeur, dans une cellule, en fonction
des valeurs indiquées dans une série de cellules voisines. Cela fonctionne
bien quand je copie cette fonction, mais si je change les valeurs des
cellules dont dépendent cette fonction, la valeur renvoyée par la fonction
ne change pas automatiquement. Il faut que je retape la fonction pour
qu'elle recalcule la valeur exacte. Comment faire en sorte que le résultats
de ma fonction soit automatiquement remise à jour?

Merci pour l'aide


Daures L

unread,
Jan 7, 2001, 4:05:14 PM1/7/01
to
Outils/options/calcul/calcul automatique
Je pense que l'option de calcul doit être cochée "sur ordre", et que c'est
pour cela que ça ne calcule pas.
amicalement
Laurent (de Marseille)
"pascal duterme" <pascal...@pi.be> a écrit dans le message news:
93akmf$9rr$1...@news.planetinternet.be...

Michel Pierron

unread,
Jan 7, 2001, 5:24:45 PM1/7/01
to
Ta fonction doit inclure le terme:
Application.Volatile

"pascal duterme" <pascal...@pi.be> a écrit dans le message news:
93akmf$9rr$1...@news.planetinternet.be...

Frédéric Sigonneau

unread,
Jan 7, 2001, 5:24:15 PM1/7/01
to
Pascal,

Si la solution que te donnes Laurent D (de Marseille) n'est pas suffisante (ça arrive
les calculs automatiques mais récalcitrants avec des fonctions VBA), plutôt que de
retaper ta formule, essaye Ctrl+Alt+F9.

Ce raccourci clavier (que j'ai appris du grand chef à 3 plumes) force le recalcul du
classeur et il m'a maintes fois dépanné.

Et puis, je ne sais pas si tu es dans ce cas, mais même avec le cacul automatique
activé, Excel ne met pas à jour les résultats des formules dans certains cas (par ex
lorsqu'un résultat dépend de cellules qui sont dans des colonnes ou lignes
quelquefois masquées, quelquefois affichées).

FS

pascal duterme a écrit :

--
Frédéric Sigonneau [né un Sans-culottide !]
Gestions de temps : http://perso.wanadoo.fr/frederic.sigonneau


Benoît MARCHAND

unread,
Jan 7, 2001, 7:16:55 PM1/7/01
to
Salut Pascal,

En complément au 3 réponses précédentes, tu pourrais peut-être construire ta fonction
différemment.
Ci-dessous une réponse que j'ai faite à un problème similaire :

--------------------------------------------------------------------------

Es-tu obligé de passer par une fonction volatile ?
Si tu as déclaré ta fonction en volatile, c'est que celle-ci teste un changement de format
de cellule... ou les cellules/plage qui entre dans le calcul de ta fonction ne sont pas dans
ses paramètres (arguments) d'entrée

Ci-dessous, deux exemples faisant la somme de la plage "A1:A10":

Sur une feuille :
En B1 : =sommeplage1()
En B2 : =sommeplage2(A1:A10)

Sur un module :
Function SommePlage1()
Application.Volatile True
SommePlage1 = Application.WorksheetFunction.Sum(Range("A1:A10"))
End Function
Function SommePlage2(Plage)
SommePlage2 = Application.WorksheetFunction.Sum(Plage)
End Function

Dans SommePlage1, on est obliger de mettre "Application.Volatile True" si l'on veut
que la fonction se recalcule un jour.
La fonction SommePlage2, se recalcule automatiquement à chaque fois qu'au moins un de ses
arguments d'entrée change.
Si en E1 tu mets une valeur quelquonque, la fonction SommePlage1 se recalculera inutilement,
car son résultat ne changera pas ; par contre SommePlage2 ne se recalculera pas.

En résumé, mieux vaut passer tous les arguments nécessaires au calcul de la fonction, même
s'ils sont nombreux, plutôt que de la déclarer volatile.

A+
Benead
--------------------------------------------------------------------------
pascal duterme a écrit :

0 new messages