dimanche 21 octobre 2012

Ajuster le filtre automatique

Pour enrichir une table, on a parfois besoin d’y ajouter une colonne. On peut faire ça à deux endroits :
- soit quelque part au milieu de la table par insertion d’une nouvelle colonne ;
- soit à côté de la table, c’est à dire dans une colonne vide à gauche ou à droite.

Par ailleurs, on travaille parfois avec le filtre automatique et on veut le garder en place (qu’on l’utilise ou non pour l’enrichissement de la table). Le comportement de ce filtre est différent selon le cas ci-dessus :
- dans le premier cas (insertion d’une colonne au milieu de la table), il n’y a pas de souci : le filtre automatique couvre aussi la colonne insérée ;
- mais dans le second cas (ajout à gauche ou à droite), le filtre automatique ne s’étend pas à la nouvelle colonne !


Si on veut conserver un filtre automatique couvrant l’ensemble de la table, il va falloir enlever le filtre automatique puis le remettre en place.


À la souris, sous Excel 2003 ça demande d’aller dans Données / Filtrer / Filtre automatique une première fois pour le désactiver, puis une seconde fois pour le réactiver. Sous Excel 2007 et 2010, ça se passe dans Accueil / Edition / Trier et filtrer : même nombre d’étapes.
Soit une demi-douzaine de clics, plus les déplacements de souris.

Rien de bien compliqué, soit. Mais pour une manip qui n’a strictement aucune valeur ajoutée, c’est chronophage, non ?

On peut aller plus vite au clavier, avec la combinaisons de touches : Alt, D, F, F.
C’est à exécuter deux fois, comme dans la manip à la souris. Huit pressions de touches.

Et puis on peut recourir à une toute petite macro qui fait la même chose.
La voici :

Sub Ajuster_FiltreAutomatique()
Selection.AutoFilter
Selection.AutoFilter
End Sub

La ligne de commande Selection.AutoFilter fait une chose et son contraire : s’il n’y a pas de filtre automatique en place sur la feuille, alors elle en met un en place. S’il y en a un en place, elle le retire.)

Autrement dit, s’il n’y a pas de filtre automatique sur la feuille, cette macro a pour effet de... ne rien faire ! Et s’il y en a un, elle a pour effet d’ajuster le filtre à l’ensemble de la table.

En mettant cette macro dans un classeur de macros personnelles, on règle le problème en une fration de seconde.

Et, au passage, ça marche aussi si on a ajouté plusieurs colonnes à la table !

Aucun commentaire:

Enregistrer un commentaire