Monsieur Excel
Pour tout savoir faire sur Excel !

13 novembre 2007

Simplifier une macro enregistrée

Même si l’on ne fait aucune bêtise quand on enregistre une macro, Excel génère du code « bavard » que l’on peut significativement simplifier.

Ainsi, les quatre premières lignes :
Selection.CurrentRegion.Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

... peuvent être ramenées à une instruction unique :
Selection.CurrentRegion.End(xlDown).End(xlDown).Offset(1, 0).Select

Après toutes les simplifications utiles, nous parvenons à un code nettement plus compact :
Certes, nous pourrions encore compacter un peu, mais cela demande un peu plus d’aisance avec le VBA, et parvenir à :

On économise ainsi deux instructions, mais au prix d’une lisibilité un peu moins bonne. Ce n’est donc pas une bonne affaire...

Dans un modèle, en règle générale, la clarté est préférable à la compacité !