dimanche 25 mars 2012

Comment remplir une colonne... en VBA

Dans mon premier billet sur ce blog (le 23 octobre dernier), j’avais parlé de cette manipulation courante qui consiste à recopier jusqu’au bas d’une colonne ce qu’on a saisi dans la première cellule tout en haut : une valeur fixe pour toute la table ou bien une formule par exemple. J’avais exposé des raccourcis qui permettent de faire ça rapidement au clavier puis j’avais conclu en annonçant que j’aborderais plus tard cette manip-là sous un angle VBA. C’est ce que je fais aujourd’hui !

Une fois qu’on a sous la main une macro qui fait ça, remplir une colonne va très vite. Et pour peu qu’on déclenche cette macro par une très brève séquence de touches, ça ressemble à ce mouvement du jeu Tétris : la chute rapide d’une pièce jusqu’au plancher, chute qu’on déclenche en appuyant sur la flèche du bas.


D’où le nom TétrisFillDown que j’ai donné à cette macro...


L’idée est simple :
1. repérer la cellule du haut,
2. repérer la cellule du bas,
3. couvrir la plage reliant ces deux cellules et y effectuer un remplissage vers le bas.

dimanche 18 mars 2012

Copier-coller en valeur... un classeur entier (et vite).

Poussons plus loin le thème du billet précédent.

On a vu dimanche dernier comment copier-coller en valeur une plage de cellules : le processus basique à la souris, puis la méthode plus rapide au clavier, et enfin une courte macro VBA qui permet de faire la même chose en une fraction de seconde.

Cette manip s’appliquait à une plage de cellules : on peut aussi l’effectuer sur une cellule toute seule, ou sur une colonne entière (ou plusieurs), ou sur une ligne entière (ou plusieurs), ou sur la feuille entière.

À partir de là on entrevoit un autre besoin : copier-coller en valeur l’intégralité de chacune des feuilles d’un classeur.

dimanche 11 mars 2012

Copier-coller en valeur... plus vite !

Copier une (ou plusieurs) cellule(s) puis effectuer un collage spécial “Valeurs” est sans doute une des manipulations qu’on effectue le plus souvent quand on construit un tableau.

C’est le cas, par exemple, quand on raisonne “table de données” et qu’on veut enrichir une base de départ dans laquelle il manque des colonnes : à coup de calculs et de RechercheV notamment, on étoffe la base de départ pour la rendre plus riche ou plus pertinente. Il arrive ensuite souvent qu’on veuille couper la source de ces enrichissements : soit des colonnes peu intéressantes en elle-mêmes, soit des tables de correspondance pour nos RechercheV. Les formules qui s’y réfèrent doivent donc être écrasées : c’est ce qu’on fait par un copier-coller en valeur de ces cellules sur elles-mêmes.

À la souris, certes, ce n’est pas très compliqué. Dans Excel 2003 par exemple : une fois la plage de cellules sélectionnée, on clique “copier” puis on va dans le menu Edition / Collage Spécial, où on sélectionne l’option Valeurs avant de cliquer OK. C’est 5 clics de souris, rien de plus.



Soit. Mais...

dimanche 4 mars 2012

Comment rendre un tableau inutile ?

L’urgence, le flou, la précipitation, l’excès de zèle, l’imprécision, etc : il y a mille et unes raisons de fabriquer un tableau Excel illisible, inexploitable et, in fine, inutile. Je ne parle pas ici du tableau qu’on crée pour soi-même : celui-là, on se le bricole seul dans son coin, on en est l’unique utilisateur, on saura toujours s’y retrouver, pas de problème. Non, je veux parler ici du tableau partagé entre plusieurs personnes dans une entreprise. Celui qui est né de quelques réunions de travail portant sur un sujet lambda et ayant abouti au verdict “bon, on va faire un tableau pour ça”. Le tableau servira à gérer ce sujet lambda, en sera la référence, le point de repère, l’outil de suivi. Le vrai, le grand, le beau. LE tableau.

Notons qu’on fait souvent ce tableau-là faute de mieux. Dans un monde idéal, il y aurait un outil conçu exprès pour le sujet lambda – logiciel préexistant ou développement propre. Mais faute de temps, ou faute de budget, ou simplement faute de pertinence par rapport à l’enjeu, on n’a pas recours à un outil spécifique : on fait juste un tableau.

Faire juste un tableau peut aller dans le mur avant même l’ouverture d’un tableur. Si la problématique est mal modélisée, ou si le délai imparti est trop court, ou si on donne au futur tableau des ambitions inconciliables, etc : le ratage est inévitable et même le plus grand expert Excel n’y pourra rien.

Mais supposons ici que ce n’est pas le cas : les réunions de travail ont rassemblé des gens qui connaissent leur métier, ils partagent une vision claire du sujet lambda, et on veut se donner les moyens de faire un bon tableau.

Pour parvenir au ratage, il ne reste donc plus qu’une solution : saboter le tableau lui-même.