Vous êtes sur la page 1sur 19

Les filtres avancs ou labors dans Excel

Paramtrer et utiliser les filtres avancs


Par Philippe Tulliez
Date de publication : 9 dcembre 2012
Outil puissant et finalement trs peu connu par les utilisateurs le filtre labor permet de
filtrer des donnes avec plus de possibilits que le filtre simple dont on atteint trs vite ses
limites.
En plus de filtrer les donnes sur place, il permet l'exportation de celles-ci vers une autre
feuille ou un autre classeur. Son exploitation en VBA offre de belles perspectives de
dveloppement.
J'espre que la lecture de ce tutoriel vous permettra de le dcouvrir ou d'en apprendre plus
sur ses possibilits.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 2 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
I - Introduction..............................................................................................................................................................3
I-A - Glossaire........................................................................................................................................................ 3
II - tape prliminaire la prparation d'un filtre avanc........................................................................................... 3
III - Comment activer le filtre labor..........................................................................................................................4
IV - Quelques exemples simples.................................................................................................................................4
IV-A - Premier exemple..........................................................................................................................................4
IV-B - Deuxime exemple...................................................................................................................................... 5
IV-C - Troisime exemple...................................................................................................................................... 5
IV-D - Quatrime exemple..................................................................................................................................... 6
V - Le filtre labor avec plusieurs critres................................................................................................................ 7
VI - Les critres calculs............................................................................................................................................. 8
VI-A - Exemples de critre calcul........................................................................................................................ 8
VI-B - Pour bien comprendre le principe du critre calcul...................................................................................9
VII - Exporter les donnes filtres.............................................................................................................................10
VII-A - Exportation de toutes les donnes filtres............................................................................................... 10
VII-B - Exportation partielle des donnes filtres................................................................................................ 10
VII-C - Exportation vers une autre feuille que la table de donnes.....................................................................11
VIII - Exportation sans doublon................................................................................................................................. 11
VIII-A - Principe.................................................................................................................................................... 11
VIII-B - Ce qu'il faut savoir dans l'exportation des doublons............................................................................... 12
IX - Quelques exemples............................................................................................................................................ 12
IX-A - L'utilisation des caractres gnriques..................................................................................................... 13
IX-B - Les champs vides et non vides.................................................................................................................14
X - savoir................................................................................................................................................................15
XI - En conclusion, nous retiendrons........................................................................................................................ 16
XI-A - Ce qu'il faut savoir.....................................................................................................................................16
XII - VBA et les filtres labors.................................................................................................................................17
XII-A - Syntaxe..................................................................................................................................................... 17
XII-B - En pratique............................................................................................................................................... 17
XII-C - Premier exemple - Filtrer la liste sur place.............................................................................................. 17
XII-D - Deuxime exemple – Exporter la liste filtre................................................................................ 18
XIII - Sky is the limit.................................................................................................................................................. 18
XIV - Fichier exemple................................................................................................................................................ 19
XV - Remerciements..................................................................................................................................................19
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 3 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
I - Introduction
Vous voulez extraire des enregistrements d'une table de donnes selon certains critres : s'ils sont relativement
simples, le filtre automatique rpondra parfaitement votre attente, si par contre vos critres sont plus complexes
(champs calculs, suite de critres logiques ET et OU) vous atteindrez vite les limites du filtre automatique.
I-A - Glossaire
Les filtres avancs sont connus aussi sous le nom de filtres labors. Nous emploierons donc indiffremment ces
deux termes.
Table de donnes : la premire ligne d'une table de donnes Excel doit contenir les noms des champs, appels aussi
tiquettes ; les lignes, de la deuxime la dernire, contiennent toutes les donnes (par exemple les renseignements
concernant les clients) : ces lignes sont appeles "enregistrements".
Chaque colonne contient, pour chaque enregistrement, les donnes correspondant l'tiquette de la colonne.
Enregistrement : ligne contenant tous les lments spcifiques d'un objet dtermin et unique (par exemple les
donnes d'un client, d'un article).
tiquette : chaque cellule de la premire ligne de la table de donnes, nommant le contenu de la colonne (par
exemple : "Nom", "Prnom", Numro", etc.).
II - tape prliminaire la prparation d'un filtre avanc
Pour utiliser un filtre labor, il faut au moins une table de donnes et une zone de critres.
1 La table de donnes doit avoir en premire ligne les tiquettes de colonne.
2 La zone de critres doit avoir en premire ligne des tiquettes de colonnes et au moins une ligne avec un ou
plusieurs critres sauf pour filtrer les doublons (ce sujet sera abord dans un chapitre ultrieur).
Partons de cette table de donnes qui va nous permettre de tester les filtres labors sans trop de difficults.
Dplaons ce tableau jusqu' la ligne 5 et copions les tiquettes de ligne de ce tableau sur la 1
re
ligne de la feuille
Excel.
les tiquettes de la zone de critres doivent avoir la mme orthographe que les tiquettes
de la table de donnes.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 4 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
III - Comment activer le filtre labor
Excel 2003 Menu [Donnes] - Filtrer - Filtre labor.
Excel 2007 et suivants : Onglet [Donnes], groupe Trier et filtrer, commande Avanc.
Ensuite la bote de dialogue apparat, la zone Plages remplie si le curseur se trouve dans une des cellules de la
table des donnes.
IV - Quelques exemples simples
IV-A - Premier exemple
Commenons par un cas simple : filtrer les lignes (les enregistrements) o la colonne Lieu est gale "Bruxelles".
Dans la cellule B2 qui se trouve juste en dessous de l'tiquette Lieu, nous introduisons la valeur "Bruxelles".
Dans le groupe Trier et filtrer de l'onglet [Donnes], cliquons sur la commande Avanc. La bote de dialogue Filtre
avanc apparat.
Analysons chaque option de cette bote.
Filtrer la liste sur place : filtre directement dans la zone de cellules d'Excel o sont places les donnes de
dpart et qui sont dclares par l'option Plages (dans notre exemple A5:G12).
Copier vers un autre emplacement : permet de crer la liste filtre vers un autre emplacement dfini par
l'option Copier dans.
Plages : la zone filtrer.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 5 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Zone de critres : dsigne la plage de cellules o nous avons insr nos critres de filtrage (dans notre
exemple A2:G2).
Copier dans : dsigne la cellule ou la plage de cellules partir de laquelle la copie des lignes filtres se fera.
Cette option n'est accessible que si l'option Copier vers un autre emplacement est coche.
Extraction sans doublon : permet de ne pas afficher les donnes en double soit avec le filtre sur place, soit
en copiant vers un autre emplacement.
Nous optons donc pour le filtre sur place en prenant comme plage A5:G12 et comme zone de critres A1:G2.
Confirmons par OK et voyons le rsultat.
Nous pouvons constater que les numros des lignes filtres sont de couleur bleue et que les lignes 7, 8, 10 et 12
sont masques : en effet, la valeur contenue dans ces lignes est diffrente du critre choisi ("Bruxelles").
Ce rsultat aurait bien entendu pu tre obtenu par un filtre simple.
Pour afficher nouveau les donnes, il suffit de cliquer sur la commande Effacer qui se trouve dans le mme groupe
que la commande Filtre labor.
IV-B - Deuxime exemple
Filtrons maintenant les enregistrements pour lesquels le lieu est "Bruxelles" ET dont la date de naissance est
suprieure ou gale au 1
er
janvier 2008.
Ajoutons donc en cellule C2 la valeur >=01/01/2008. Excutons ensuite la mme commande en choisissant les
mmes options.
Nous constatons qu'il n'y a plus que deux enregistrements qui rpondent ces deux critres combins.
IV-C - Troisime exemple
Appliquons ensuite un filtre en ajoutant un critre :(Lieu=Bruxelles et Date de naissance>=01/01/1998) OU
(Moyenne>7,5).
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 6 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Pour obtenir le rsultat escompt, ajoutons en G3 (colonne Moyenne) la valeur >7,5.
Dans la bote de dialogue, modifions la zone de critres en mettant A1:G3.
En conclusion, nous constatons que placer des critres sur une mme ligne quivaut la
fonction ET ; par contre, si nous utilisons plusieurs lignes, cela quivaut la fonction OU
IV-D - Quatrime exemple
Cet exemple est pratiquement le mme que le prcdent sauf qu'ici dans la deuxime ligne (OU), nous ajouterons
Bruxelles dans le critre Lieu.
Ce qui signifie que nous filtrons les enregistrements avec comme critres :
(Lieu =Bruxelles) ET (Naissance>=01/01/1998 OU Moyenne>7,5),
ce qui peut s'crire galement
(Lieu=Bruxelles ET Date de naissance>=01/01/1998) OU (Lieu=Bruxelles ET Moyenne>7,5).
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 7 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
V - Le filtre labor avec plusieurs critres
Dans les exemples prcdents, nous avons utilis un seul critre de filtre par colonne; dans les suivants, nous
utiliserons simultanment plusieurs critres.
Par exemple, nous cherchons filtrer les donnes de personnes dont les moyennes de cotes se situent entre 7,5 et 9.
Prcision importante : jusqu' prsent, nous avions dans la zone des critres, le mme
nombre de colonnes que la table de donnes. Cela n'est absolument pas indispensable,
seules les colonnes et leurs tiquettes concernes par les critres doivent tre prsentes.
Nous allons donc utiliser deux colonnes de critres portant la mme tiquette Moyenne, comme le montre l'exemple
ci-dessous.
Dans la bote de dialogue, l'option Zone de critres fera donc rfrence aux cellules A1:B2.
Si nous souhaitons appliquer un critre supplmentaire, par exemple, les personnes de Bruxelles ayant une moyenne
entre 7 et 9, nous ajouterons une colonne de critres et dans la bote de dialogue, l'option Zone de critres fera donc
rfrence aux cellules A1:C2, comme l'illustre l'exemple ci-dessous.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 8 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
VI - Les critres calculs
VI-A - Exemples de critre calcul
Un des gros avantages du filtre labor, fort mconnu, est l'utilisation de critres calculs.
Pour les utiliser, entrons une formule en lieu et place d'une constante et plaons comme tiquette de colonne un nom
que l'on ne retrouve pas comme en-tte dans la table de donnes.
Ainsi, si l'on souhaite filtrer les donnes des personnes nes en 1997, nous placerons une colonne avec comme
tiquette AnneeNaiss et la ligne suivante la formule =ANNEE(C6)=1997.
Nous constatons que la cellule A2 qui contient la formule =ANNEE(C6)=1997 et qui fait rfrence la cellule C6
renvoie FAUX : en effet la valeur de la cellule en C6 est le 5 fvrier 1998 donc anne 1998.
En conclusion : lorsque nous utilisons des critres calculs dans les filtres labors :
l'tiquette de colonne doit porter un nom diffrent de celui d'une tiquette de la table de
donnes ;
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 9 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
le critre doit tre une formule ou une suite de formules imbriques qui doit renvoyer VRAI
ou FAUX ;
le test logique DOIT tre effectu sur une ou plusieurs cellules de la premire ligne de
la table de donnes.
Nous pourrions bien entendu ajouter des critres calculs.
Par exemple, filtrons les enregistrements des personnes nes en 1997 et dont la cote en math est gale ou suprieure
la moyenne des points obtenus en math.
Ajoutons une colonne critre dont l'tiquette sera MoyMath et la formule =D6>MOYENNE($D$6:$D$12). Sachant
que la moyenne obtenue en math pour l'ensemble des personnes enregistres est de 7,8, le rsultat final est de
deux enregistrements filtrs.
On aurait pu bien sr dans ce cas se limiter une seule colonne contenant le critre calcul avec, par exemple,
comme tiquette AnSupMoy et comme formule :
=ET(ANNEE(C6)=1997;D6>=MOYENNE($D$6:$D$12))
ou encore
=(ANNEE(C6)=1997)*(D6>=MOYENNE($D$6:$D$12)).
VI-B - Pour bien comprendre le principe du critre calcul
Petit rappel : en A2 la formule est =ANNEE(C6)=1997, en B2 nous avons =D6>MOYENNE($D$6:$D$12).
Saisissons ces mmes formules en I6 & J6 et recopions-les vers le bas, soit la plage I6:J12.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 10 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Nous constatons que seules deux lignes renvoient VRAI dans les deux colonnes I & J.
VII - Exporter les donnes filtres
Un grand avantage du filtre labor est sa capacit exporter des donnes filtres vers un autre emplacement.
L'exportation des donnes filtres se prpare de la mme manire que ce qui a t dcrit plus haut.
Il suffit de cocher l'option Copier vers un autre emplacement et ensuite rfrencer dans la zone Copier dans, la cellule
partir de laquelle doivent s'exporter les enregistrements filtrs, comme le montre l'illustration.
Les lments ainsi filtrs se retrouvent bien partir de $J$1.
Il y a deux possibilits d'exporter les donnes filtres : soit l'entiret des champs de la table de donnes, soit certains
champs seulement.
VII-A - Exportation de toutes les donnes filtres
C'est l'option par dfaut que l'on retrouve dans l'exemple ci-dessus : nous avons simplement indiqu la rfrence de
dpart ($J$1) dans le champ Copier dans : de la bote de dialogue Filtre avanc.
VII-B - Exportation partielle des donnes filtres
L'exportation partielle demande une petite prparation.
Prenons comme hypothse que nous ne souhaitons avoir que les colonnes Prnom, Lieu, Math et Moyenne des
enregistrements ainsi filtrs.
Copions les tiquettes de ces colonnes de J1 M1 et ensuite dans la zone Copier dans de la bote de dialogue Filtre
avanc, slectionnons les cellules J1:M1.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 11 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Aprs confirmation, les donnes filtres sont exportes.
L'autre avantage de l'exportation partielle est la prsentation dans un ordre diffrent des
colonnes de celui de la table de donnes initiale. Il suffit de placer les tiquettes dans
l'ordre souhait.
VII-C - Exportation vers une autre feuille que la table de donnes
Curieusement, il est impossible de slectionner une autre feuille dans la zone Copier dans de la bote de dialogue
Filtre avanc. Mme l'utilisation d'une plage nomme ne fonctionne pas.
Pour pallier ce problme, il faut lancer le filtre labor depuis la feuille d'o l'on veut exporter (il faudrait plutt dire
importer), la liste filtre d'une table se trouvant sur une autre feuille.
VIII - Exportation sans doublon
VIII-A - Principe
Cette fonctionnalit est surtout intressante lorsqu'il s'agit de ne prendre que les lments uniques d'une colonne,
surtout depuis la version 2007 d'Excel qui intgre un outil qui permet de supprimer les doublons.
Ainsi par exemple, nous aimerions avoir la liste des villes utilises dans la colonne B (tiquette Lieu).
Ouvrir la bote de dialogue Filtre avanc avec les options Copier vers un autre emplacement et Extraction sans
doublon coches, Plages : $B$1:$B$8, rien dans la zone de critres, Copier dans : $I$1.
Mais bien entendu si l'on a des lignes en double, on peut parfaitement faire une exportation sans doublon.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 12 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
VIII-B - Ce qu'il faut savoir dans l'exportation des doublons
Important : en ce qui concerne l'exportation, le filtre sur les doublons dpend des tiquettes de colonnes de la zone
d'exportation.
Dans la table de donnes ci-dessous, nous avons trois enregistrements avec des doublons sur l'ensemble des
champs l'exception du champ voiture.
Observons le rsultat de l'exportation sans doublon des femmes habitant un Studio dans les deux exemples ci-
dessous.
Le premier est le rsultat de l'exportation sur trois champs (H4:J4) , l'autre sur quatre (H11:K11).
IX - Quelques exemples
Utilisons d'autres donnes pour les exemples qui vont suivre.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 13 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
IX-A - L'utilisation des caractres gnriques
Comme dans les recherches d'Excel, il est possible d'utiliser les caractres gnriques, astrisque (*) et point
d'interrogation (?).
Petit rappel : le point d'interrogation (?) remplace un caractre quelle que soit sa valeur,
l'astrisque (*) remplace 0 ou plusieurs caractres quelles que soient leurs valeurs. Si la
valeur filtrer contient un des caractres ? ou *, il faut les faire prcder du caractre ~.
Ainsi, filtrons les personnes dont le prnom contient la lettre L.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 14 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Cherchons les voitures dont la premire lettre est inconnue, les deuxime et troisime lettres OL et quels que soient
le nombre et la valeur des caractres qui suivent.
IX-B - Les champs vides et non vides
Dans la cellule contenant le filtre, saisissez :
= ou "=" pour les enregistrements non remplis ;
<> ou "<>" pour les enregistrements remplis.
Filtrons les personnes qui n'ont pas de voiture.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 15 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
A contrario, filtrons maintenant ceux qui ont une voiture.
X - savoir
Si on veut filtrer une chane exacte par exemple Marie, il y a lieu de faire prcder cette chane par l'apostrophe et
l'oprateur logique d'galit '=Marie ou ="=Marie" (exemple 2) afin de ne pas filtrer Marie-Tina comme le montre
l'exemple 1.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 16 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Les filtres sur les chanes de caractres ne sont pas sensibles la casse. Pour pallier le problme il y a lieu d'utiliser
un critre calcul.
XI - En conclusion, nous retiendrons
Les donnes peuvent tre filtres sur place ou exportes vers un autre emplacement.
Les tiquettes de la zone de critres doivent tre identiques celles de la table de donnes l'exception des critres
calculs.
Les critres placs sur une mme ligne sont quivalents un ET, les critres placs sur une deuxime ligne un OU.
Ne pas englober une ligne vide dans la plage des critres.
Les tiquettes des critres calculs DOIVENT avoir un nom diffrent des tiquettes de la table de donnes.
Les critres sont des formules dont le rsultat doit tre VRAI ou FAUX (boolennes) et doivent concerner la premire
cellule de la colonne concerne.
Pour indiquer qu'on veut copier les donnes filtres vers un autre emplacement, il faut cocher l'option Copier vers
un autre emplacement et remplir la zone Copier dans avec :
l'adresse de la premire cellule de l'emplacement dsir si l'on exporte tous les champs (ex : $M$1) ;
le nom des tiquettes des colonnes exporter (avec la mme orthographe !) et slectionner ces tiquettes
(ex : $M$1:$Q$1) ; les tiquettes peuvent tre places dans un ordre diffrent des tiquettes de la table de
donnes.
Si on veut exporter vers une autre feuille, il faut procder l'envers : il faut excuter le filtre partir de la feuille
de destination.
XI-A - Ce qu'il faut savoir
Dans la zone des critres, ne pas rfrencer la troisime ligne (la ligne OU) si celle-ci ne contient rien. Il en rsulterait
un filtrage erron.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 17 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
Se mfier des propositions faites par la bote de dialogue. Il arrive que celle-ci vous propose des rfrences errones.
En effet l'outil Filtre labor cre des rfrences nommes pour les options plage, exportation et critres qu'il utilise
pour faire des propositions par l'intermdiaire de sa bote de dialogue.
XII - VBA et les filtres labors
L'utilisation des filtres labors en VBA est gre par la mthode AdvancedFilter de l'objet Range.
Cette mthode filtre ou copie des donnes partir d'une liste base sur une plage de critres.
XII-A - Syntaxe
expression . AdvancedFilter (Action, [CriteriaRange], [CopyToRange], [Unique])
Les arguments : l'exception d'Action, tous les arguments sont facultatifs.
Action : Deux constantes de type xlFilterAction dfinissent le type d'action.
Nom Valeur Description
xlFilterCopy 2 Copie les donnes filtres
vers un nouvel emplacement
xlFilterInPlace 1 Filtre les donnes en place
CriteriaRange Zone de critres.
CopyToRangePlage de destination des lignes copies si l'argument Action a comme valeur xlFilterCopy.
UniqueTrue pour filtrer exclusivement les enregistrements uniques et False pour filtrer tous les enregistrements
rpondant aux critres. La valeur par dfaut est False.
XII-B - En pratique
Voyons quelques exemples de l'utilisation du code VBA avec le Filtre avanc.
XII-C - Premier exemple - Filtrer la liste sur place
Pour notre premier exemple, filtrons sur place la plage A1G16, selon les critres suivants : les dates comprises entre
le 1/3/2011 et le 30/06/2011 et ayant des enfants.
Appelons cette procdure Filter.
Sub Filter()
Range("A1:G16").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("I1:L2"), _
Unique:=False
End Sub
L'illustration ci-dessous montre les arguments de la mthode AdvancedFilter en regard de la bote de dialogue Filtre
avanc.
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 18 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
XII-D - Deuxime exemple &#8211; Exporter la liste filtre
Pour cet exemple, filtrons en copiant vers un autre emplacement.
Cette fois-ci nous emploierons comme critres deux cellules contenant chacune la fonction ET.
La procdure est nomme Export.
Sub Export()
Range("A1:G16").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("I1:I3"), _
CopyToRange:=Range("I15:M15"), _
Unique:=False
End Sub
XIII - Sky is the limit
Cette expression s'adapte bien ce que l'on peut faire avec VBA quand on matrise bien Excel.
La feuille [ControlsFilters] illustre les innombrables possibilits qui s'offrent toutes personnes voulant dvelopper
rapidement des exportations de tables de donnes sans modifier le code VBA, en utilisant les cellules d'Excel comme
paramtres.
Pour profiter pleinement de cette procdure afin de la rendre utilisable quelle que soit la situation, il y a lieu de crer
une procdure.
Les exemples prsents dans cette feuille utilisent une fonction nomme ExportByFilter qui permet de passer comme
arguments la table de donnes, la zone des critres et en option la rfrence la zone d'export. Cette procdure
renvoie le nombre de donnes filtres et donc exportes.
Function ExportByFilter(znData As Range, znCriteria As Range, Optional znExport As Range) As Long
' Procdure d'exportation base sur le filtre labor
' Author : Philippe Tulliez http://philippe.tulliez.be
' Valeur renvoye : Nombre d'enregistrements exports
' znData ' Table de donnes
' znCriteria ' Zone des critres
' [znExport] ' Zone d'exportation (si vide exporte tout en crant une feuille)
Les filtres avancs ou labors dans Excel par Philippe Tulliez
- 19 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2012 Philippe Tulliez. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Droits de diffusion permanents accords
Developpez LLC. Cette page est dpose la SACD.
http://philippetulliez.developpez.com/tutoriels/advancedfilter/
If znExport Is Nothing Then ' Cration de la feuille d'export et coloration en rouge
Worksheets.Add before:=Sheets(1)
With Worksheets(1): ActiveCell = .Range("A1") : .Tab.Color = vbRed: End With
Set znExport = ActiveCell
End If
znData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=znCriteria, CopyToRange:=znExport
ExportByFilter = znExport.CurrentRegion.Rows.Count &#150; 1
End Function
Cette procdure est prsente dans le module mTutoAdvancedFilter qui accompagne le tutoriel.
Pour tester la cration automatique de la feuille d'exportation, il suffit d'effacer une des donnes dans les cellules
contenant les noms des plages d'exportation.
XIV - Fichier exemple
Ce tutoriel est accompagn d'un fichier exemple que vous pouvez tlcharger en cliquant ici
XV - Remerciements
Merci :
Magali, ma fille chrie pour son support technique ;
Mon ami Bob Ward pour sa relecture des premires versions de ce tutoriel et ses remarques toujours aussi
pertinentes ;
Pierre Fauconnier et Thierry (Arkham46) pour leurs remarques bienveillantes, conseils techniques et
encouragements ;
Claude Leloup pour sa relecture orthographique, typographique et ses remarques judicieuses.