Monsieur Excel
Pour tout savoir faire sur Excel !

26 décembre 2009

Les limites de l’extraction de base

Il y a plusieurs limites aux extractions depuis une base de données. Nous en avons vu la première lors de l’article précédent : elle détruit sans rémission tout ce qui se trouve en dessous de la liste des noms des champs à extraire.

Destruction de tout ce qui se trouve en dessous

Il y a une parade à cette destruction, qui consiste à ne pas sélectionner seulement une liste de noms de champs à extraire, mais aussi une zone de réception pour le résultat, comme nous le faisons ici avec B35:D37 :

Dans ce cas, Excel n’extrait que les deux premiers résultats, puis vous demande si vous voulez la suite, en indiquant – il ne l’avait pourtant pas dit quand la zone d’extraction était B35:D35 ! – que, si vous poursuivez, tout ce qui se trouve en dessous sera détruit…

Si vous voulez tout extraire, il faut donc annuler, insérer le nombre de lignes nécessaire (mais on ne sait pas combien il en manque !) au-dessus de la ligne 41, puis recommencer l’opération. Comme je l’ai annoncé dans l’article précédent, cette parade n’est donc que partielle.

Extraction sur une autre feuille

Une autre limitation d’Excel est l’impossibilité dans laquelle on se trouve d’extraire le résultat sur une autre feuille. Ceci est d’autant plus mal venu que, tous les experts en bases de données vous le diront, la feuille contenant la base ne devrait contenir que la base, pour des raisons évidentes de sécurité.

C’est la raison pour laquelle, quand je développe une application pour mes clients, je préfère mettre en place une macro qui filtre la liste sur place, puis la copie, et la colle enfin à l’endroit voulu sur une autre feuille.

Ceci dit, rien n'interdit de placer la zone de critères et la zone de réception sur une autre feuille, et d'extraire alors sur cette autre feuille, en faisant référence, pour l'identification de la base, à sa feuille d'origine...

L’extraction sans doublon

Cette case à cocher permet d’éviter des doublons dans le résultat de l’extraction. Si par exemple on extrait seulement le nom et l’âge, deux jumeaux engendreraient alors deux lignes identiques dans l’extraction.

Pour ma part, j’aurais programmé Excel pour que cette case à cocher soit grisée quand l’option « Filtrer la liste sur place » est active. En effet, une base propre ne contient jamais deux lignes identiques : cette case à cocher devrait donc être totalement inutile si l’on filtre sur place.

M’enfin, comme dirait Gaston, cela permettra peut-être aux mauvais gestionnaires de nettoyer leur base :)