La volatilité dans Excel
Dans
le dernier article, nous avons évoqué le problème de la volatilité dans Excel
en disant que, pour chaque cellule utilisant une fonction volatile,
cette cellule, ainsi que toutes les cellules qui leur son dépendantes
directement ou indirectement, sont calculées chaque fois que l’on modifie le
contenu d’une cellule quelconque d’un
classeur ouvert quelconque.
En
fait, la situation réelle est pire encore que cela car ce n’est pas
seulement la modification d’une cellule qui peut entraîner tous ces calculs.
D’autres événements peuvent aussi provoquer cette vague de calculs :
- insertion ou suppression de ligne(s) ou de colonne(s) ;
- certaines utilisations du filtre automatique ;
- double clic sur un séparateur de ligne ou de colonne ;
- ajout, édition ou suppression d’un nom ;
- modification du nom d’un onglet ;
- déplacement d’un onglet ;
- masquage ou démasquage de lignes (pas de colonnes !).
Cela
peut entraîner des temps de calcul énormes, allant jusqu’à rendre le modèle –
dans les pires cas – pratiquement inutilisable.
De nombreux utilisateurs ont recours à cette fonction pour vérifier comment une date saisie se situe par rapport à la date du jour. On pourrait éviter tout cela avec par exemple une macro qui, à l’ouverture du classeur, mette la date du jour dans une cellule donnée.
Le cas de indirect() ou decaler()
De la même façon, une partie des objectifs que l’on cherche à atteindre à l’aide des fonctions indirect() ou decaler() peut être atteinte à l’aide des fonctions index() et choisir().
Liste des fonctions volatiles
Voici la liste des fonctions volatiles :
- maintenant()
- aujourdhui()
- alea() et alea.entre.bornes()
- decaler()
- indirect()
- info() (selon ses arguments)
- cellule() (selon ses arguments)
Je
me suis inspiré pour cet article de l’excellente publication de Chandoo sur ce
sujet :
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil