Monsieur Excel
Pour tout savoir faire sur Excel !

14 septembre 2010

Amélioration de la macro

Aujourd'hui, nous allons améliorer la macro de création de tableau présentée il y a quatre jours.

L’enregistrement de macros pose toujours deux problèmes :
● les adresses enregistrées sont toujours absolues : ainsi, la référence de la table en A2:I13 est-elle fixe et ne fonctionnera plus si l’on insère des lignes ou des colonnes en amont de la table ;
● le code enregistré est toujours verbeux : on peut le réduire de façon significative en en réécrivant une partie de la macro.

Flexibilité par rapport à la position de la table

Pour résoudre le problème représenté par les adresses enregistrées dans la macro, il suffit de remplacer ces adresses par des noms, par exemple :
Table pour A2:I13
Années pour C16
Intérêt pour C17
Tab_int pour B3:I13

La redéfinition des noms, après des insertions de lignes ou de colonnes en amont de la table sera alors automatique. Plus de problème pour la macro !

Réécriture du Copier-Collage des valeurs

Quand on enregistre une macro, pour remplacer un bloc de cellules par ses valeurs, il faut bien passer par un Copier suivi d’un Collage spécial des valeurs. Quand on écrit une macro à la main, cela n’est plus nécessaire comme vous pouvez le voir dans le code ci-dessous…

Remarque 1 – Nous avons encore économisé une instruction (et du temps, epsilonesque sur cet exemple) en évitant de sélectionner la zone de la table avant d’appliquer l’instruction « Table ».

Remarque 2 – Le code est nettement plus compact à présent, avec seulement deux instructions là où il y en avait cinq auparavant, soit une économie de 60%. Il s’exécute en outre bien plus vite, quoi que l’on ne puisse pas en voir ici la différence.

Libellés :