Monsieur Excel
Pour tout savoir faire sur Excel !

03 mars 2008

Le re-engineering de vos modèles

Dans les deux derniers articles, nous avons vu une macro de 18 instructions, puis son remplacement par une macro de deux instructions seulement. On peut donc faire de sérieuses économies de place mémoire et de temps calcul avec un reengineering des macros.

Une bonne part de mon activité de consultant revient à prendre des modèles existants et à les modifier – d’une part pour les rendre plus flexibles, plus sûrs et plus sexy – d’autre part pour les rendre plus performants, grâce à une dimension réduite et un temps de calcul accéléré.

La réduction de la taille d’un classeur ne résulte pas seulement dans une économie de place et une facilité de transport améliorée : il faut savoir que, quand la taille d’un classeur Excel dépasse les 20 Mo, on ne peut plus avoir totalement confiance dans sa capacité à bien effectuer tous les calculs nécessaires sans erreur. Dans certains cas, par exemple, le lancement du calcul par [F9] ne marche plus ; parfois même, le « calcul forcé » obtenu normalement avec la combinaison de touches [Ctrl]-[Alt]-[F9] refuse lui aussi de fonctionner…

Réduction de taille de classeur

Le tableau ci-dessous illustre, pour quelques exemples précis que j’ai vécus en tant que consultant, la taille du classeur original et celle du classeur après re-engineering.

Remarque – Dans les trois premiers cas, le modèle amélioré faisait tout ce que faisait le modèle original, plus de nouvelles fonctionnalités.

Une autre possibilité de gain en efficacité est celui de sanofi-aventis où j’ai pu remplacer 150 classeurs par un classeur unique. J’ai eu un autre cas du même genre avec la CCIP, où un grand nombre de classeurs a été remplacé par un classeur unique.

Gain en vitesse de calcul

Bien entendu, une réduction significative de la taille d’un classeur aboutit aussitôt à une amélioration de son temps de calcul.

Mais il y a aussi des techniques spécifiques pour réduire de façon significative le temps de calcul d’un classeur, même sans modification sensible de sa taille. Je suis ainsi souvent arrivé à économiser 50% du temps de calcul des modèles que j’avais améliorés.

J’ai rencontré aussi des cas extrêmes : pour un modèle de Lilly France dont le temps de calcul était de 1’30", je suis descendu à moins d’une seconde de temps de calcul, soit une économie de plus de 99% du temps de calcul. Il faut dire que, dans ce modèle, il y avait une macro effectuant un traitement compliqué, que j’ai pu remplacer par une formule directe !