Réflexions sur la volatilité
Dans l’article précédent,
nous avons vu que, par défaut, les fonctions personnalisées n’étaient pas
volatiles, mais qu’on pouvait les rendre volatiles en mettant l’instruction Application.Volatile
au début de leur code.
Le concept de volatilité n’est pas simple à maîtriser… Dans notre exemple, quand on lance le recalcul des nombres aléatoires par [F9], la cellule C2 ne se recalcule pas. En revanche, si l’on modifie à la main la valeur de l’une quelconque des cinq cellules de A1 à A5, C2 se recalcule…
Une autre façon de résoudre
le problème est l’astuce utilisée par la formule utilisée aujourd’hui en C3 :
en ajoutant puis soustrayant une fonction volatile – telle que aujourdhui() ou
maintenant() – à somme_2(), on rend cette fonction volatile même quand la
commande Application.Volatile est désactivée.
Le concept de volatilité n’est pas simple à maîtriser… Dans notre exemple, quand on lance le recalcul des nombres aléatoires par [F9], la cellule C2 ne se recalcule pas. En revanche, si l’on modifie à la main la valeur de l’une quelconque des cinq cellules de A1 à A5, C2 se recalcule…
En fait, il y a même de
nombreux désaccords entre Microsoft et les experts d’Excel sur ce qui est ou
n’est pas volatile dans Excel.
Pire encore, la volatilité
d’une fonction peut très bien changer d’une version d’Excel à l’autre !!!
Et, plus étrange même, cette
volatilité peut aussi dépendre des arguments que vous avez utilisés…
Pour en savoir plus sur ce
sujet, je vous conseille vivement la lecture de la passionnante analyse publiée
à l’adresse suivante :
Dans cet article, l’auteur
spécifie clairement qu’il est préférable de ne pas avoir recours à
l’instruction Application.Volatile, car cela ralentit les calculs en forçant Excel
à effectuer des recalculs trop fréquents.
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil