IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Excel : les filtres avancés ou élaborés
Par Philippe Tulliez

Le , par Philippe Tulliez

36PARTAGES

19  0 
Bonjour,
J'ai le plaisir de vous annoncer mon nouveau tutoriel traitant des filtres avancés ou élaborés

Outil puissant et finalement très peu connu par les utilisateurs le filtre élaboré permet de filtrer des données avec plus de possibilités que le filtre simple dont on atteint très vite ses limites.

En plus de filtrer les données 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 développement.
J'espère que la lecture de ce tutoriel vous permettra de découvrir cet outil ou d'en apprendre plus sur ses possibilités.

Retrouver tous les meilleurs cours et tutoriels pour apprendre Microsoft Office Excel

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Philippe Tulliez
Rédacteur https://www.developpez.com
Le 12/12/2012 à 21:03
Bonjour Pierre,
Merci pour ton commentaire qui fait chaud au coeur et merci encore pour ton aide de ces derniers jours.
Les autres tutos vont suivre, certainement un sur les fonctions base de données avant la fin de l'année.
Amitiés
7  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 12/12/2012 à 20:56
Bonsoir Philippe,

Un nouveau tuto sur Excel, c'est toujours une bonne chose.

Le filtre avancé, que ce soit pour un filtre sur place ou pour une extraction, est effectivement un outil un peu méconnu, peut-être parce que sa mise en place n'est pas intuitive.

Bravo pour ce tutoriel qui permet de le prendre en mains pas à pas, et qui aborde en plus l'aspect VBA de l'outil. Cela conforte l'idée émise dans ma signature "VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA..."...

Je suis juste très impatient de découvrir ton prochain sujet.

Amitiés
5  0 
Avatar de
https://www.developpez.com
Le 15/12/2012 à 8:23
Salut Philippe

Je suis loin d'être un pro d'Excel, c'est pourquoi ce tuto m'a apprit encore pas mal de choses.

J'ai trop tendance avec Excel à ouvrir l'éditeur VB et à faire une petite routine pour avoir ce que je veux ou à tout basculer sur Access pour faire une requête. C'est pourquoi ce genre de tuto est très utile.



Philippe
5  0 
Avatar de Didier Gonard
Expert éminent https://www.developpez.com
Le 15/12/2012 à 12:28
Salut Philippe,

Même constat en tant que formateur, le filtre avancé est méconnu et quand il l'est c'est généralement sur ses possibilités les plus basiques.

Ce tuto très complet et très clair, toutes versions qui plus est, est donc bienvenu

Didier
5  0 
Avatar de Zodette
Nouveau membre du Club https://www.developpez.com
Le 15/12/2012 à 5:04
Je donne de la formation et, en effet, le filtre avancé est méconnu. Il est un outil incontournable pour ceux qui manipulent des données.

Merci, j'ai pu apprendre comment identifier les vides ou non vides ainsi que de préciser la casse.

Encore MERCI!
4  0 
Avatar de Philippe Tulliez
Rédacteur https://www.developpez.com
Le 15/12/2012 à 8:52
Bonjour Philippe,
Merci pour ce retour.
J'ajouterais que je suis dans le même cas que toi par rapport à Access où je réalise sur Excel ce que je pourrais faire certainement plus facilement avec Access.
Bonne journée
Philippe
4  0 
Avatar de Philippe Tulliez
Rédacteur https://www.developpez.com
Le 17/12/2012 à 15:47
Bonjour Fabien,
Citation Envoyé par Golork Voir le message
Bonjour, j'ai actuellement développé une application qui effectue une série de filtres automatique (en VBA) sur un gros fichier Excel de plus de 190 000 lignes (export client) et en calcul la somme ou le nombre d'une colonne définie.
La routine me permet de créer 5 tableaux, de lignes et colonnes fixes, mais voilà le temps de traitement est assez long : ~300 sec pour les 5 tableaux (je ne compte pas ici l'ouverture de l'export client).
J'ai bien contrôlé dans mon code d'éviter les ".Select", grouper les instructions avec des "With", désactiver le calcul auto et la mise à jour de l'écran.
Ma question : est-ce que le filtre élaboré me permettrait de gagner en performance par rapport au filtre automatique ?
Merci pour ton tutos que je regarderais quand j'aurais un peu plus de temps
Je n'ai pas poussé les tests jusqu'à ce nombre de lignes mais la fonction VBA que je donne en exemple dans le fichier qui accompagne le tutoriel te permettra de le vérifier facilement et j'espère que tu nous feras parvenir en retour le temps que cette fonction aura mis pour exporter les données.
La fonction
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' Module contenant les procédures utilisées dans le classeur illustrant le tutoriel Filtres avancés d'excel
Function ExportByFilter(znData As Range, znCriteria As Range, Optional znExport As Range) As Long
 ' Author : Philippe Tulliez http://philippe.tulliez.be
 ' Date : 01/11/2012
 ' Version : 1.0
 ' Procédure d'exportation basée sur le filtre élaboré
 ' Valeur renvoyée : Nombre d'enregistrements exporté
 ' znData     ' Table de données
 ' znCriteria ' Zone des critères
 ' [znExport]   ' Zone d'exportation (si vide Exporte tout, en créant une feuille)
 If znExport Is Nothing Then ' Création 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 - 1
End Function
[EDIT]
Je viens d'effectuer un test sur une zone data de 3 colonnes et 272 769 lignes.
Le nombre exporté (répondant aux critères) est de 3 732 lignes en créant une feuille pour l'exportation.
Temps moins d'une seconde.
4  0 
Avatar de Didier Gonard
Expert éminent https://www.developpez.com
Le 19/12/2012 à 15:27
Bonjour issoram;

Citation Envoyé par issoram Voir le message
Si j'ai un peu de temps je ferais des comparatifs de performances vs l'utilisation de tableaux en VBA.
Au niveau du contexte, via Excel, on passe en langage natif, les similitudes entre ll’organisation d'une feuille et les variables tableaux, plus le fait qu'on puisse dans les deux sens injecter l'un dans l'autre direct, laisse à penser que c'est, en partie, le mode de fonctionnement d'Excel.
Donc si on pilote Excel sur des fonctions natives via VBA, on doit gagner par rapport à monter une plage dans un tableau, exécuter du code et redescendre.

mes test pour ce fil vont dans le même sens que Philippe :
Sinon, dès que les données sont nombreuses tu as intérêt à éviter les boucles quel quelles soient car elles sont chronophages.

Dans un cas comme le tien passer par un filtre auto ou avancé, à un stade donné, pour récupérer les données voulues serait surement bien plus rapide.
Pour exemple, sur un fichier de données de villes de 146 727 lignes et 2 346 687 cellules, je récupère une table de 2329 lignes et 37 249 cellules en l'espace de moins d'une seconde avec une extraction vers autre emplacement d'un filtre avancé...
cordialement,

Didier
4  0 
Avatar de Philippe Tulliez
Rédacteur https://www.developpez.com
Le 15/12/2012 à 8:16
Bonjour Odette,
Merci pour ce message qui me fait très plaisir.
Bonne journée
3  0 
Avatar de Phanloga
Expert confirmé https://www.developpez.com
Le 16/12/2012 à 17:38
Bon sang ! Mais c'est bien sûr !!!

J'utilisais cet outil, mais je ne connaissais pas la moitié du quart du millième des possibilités offertes !!

Un grand merci.
3  0