Monsieur Excel
Pour tout savoir faire sur Excel !

04 février 2013

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.

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.