Monsieur Excel
Pour tout savoir faire sur Excel !

29 février 2008

Amélioration de notre macro

Il y a quatre jours, je vous ai présenté une macro dont l’objet était de sélectionner, à l’intérieur de la sélection active, les seules cellules non vides.

La macro identifiait d’un côté les cellules contenant des formules et de l’autre celles contenant des constantes puis, si les deux ensembles étaient non vides, les fusionnaient grâce à la commande Union.

Pour cet exemple – comme très souvent avec le VBA – non seulement il y a de multiples façons d’atteindre ce même objectif, mais certaines sont nettement plus compactes que les autres. Voici ce que l’on peut obtenir quand on a activé la macro après avoir sélectionné le bloc A1:D5.

Dans ce cas précis, nous pouvons remplacer les 18 instructions de la macro originale par seulement deux instructions ayant exactement le même effet :

On Error Resume Next
Union(Selection.SpecialCells(xlCellTypeFormulas, 23), _
Selection.SpecialCells(xlCellTypeConstants, 23)).Select

Quand vous rendez ainsi un code nettement plus compact, vous êtes en situation de win-win : d’un côté, vous économisez de la place mémoire et du temps de calcul ; de l’autre, vous rendez la macro nettement plus lisible, et donc plus économique du point de vue de la maintenance.