Monsieur Excel
Pour tout savoir faire sur Excel !

12 mai 2016

La fonction indirect (c)

Ce qui m’a amené à vous reparler de la fonction indirect(), c’est un sondage lancé par mon collègue MVP Charles Williams, demandant aux experts Excel de répondre à un sondage pour identifier les fonctions Excel les plus dangereuses.

Son opinion est qu’il s’agit pour lui de la fonction indirect() :

Ses reproches sur la fonction indirect() sont les suivants :
  • elle est volatile
  • elle est « single-threaded »
  • elle renvoie facilement #REF !
  • elle exige que le classeur référencé soit ouvert
  • elle ne s’adapte pas aux modifications de structure
  • elle est difficile à « débugger »
Le problème de la volatilité

En fait, sans vous le dire, Excel construit un arbre de dépendance documentant comment les cellules d’un classeur dépendent les unes des autres. De grands modèles peuvent donc contenir de grandes chaînes de dépendance répertoriant des listes de milliers de cellules. C’est grâce à cela qu’Excel gère tous les calculs en connaissant ainsi l’ordre de priorité des calculs.

Le problème, c’est que les fonctions volatiles sont toutes recalculées chaque fois que vous modifiez le contenu d’une cellule quelconque d’un classeur ouvert quelconque.

Si donc un de vos classeurs contient des fonctions volatiles dans des cellules qui possèdent de grandes chaînes de dépendance, vous effectuez un grand nombre de recalculs superflus, ce qui peut ralentir votre modèle de façon très significative.

Nous reparlerons de la volatilité dans le prochain article…

Single-threaded

Ce terme peut faire un peu peur, et il est mis à toutes les sauces dans les traductions en français :

L’option « multi-threaded » a été introduite avec Excel 2007.
Elle vous permettra d’effectuer vos calculs plus rapidement si vous disposez d’un multi-processeur. 

Pour en savoir plus, lisez plutôt ce qu’en dit Microsoft :
https://support.microsoft.com/en-us/kb/2696967