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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Tutoriel - Les filtres avancés ou élaborés d'excel


Sujet :

Excel

  1. #21
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Chris,
    Effectivement j'avais le même message d'erreur lors de mes tests (#NOM?) ce qui est normal comme message d'erreur mais curieux pour le résultat positif qu'il engendre. A creuser.

  2. #22
    Membre régulier
    Profil pro
    Chef de projets
    Inscrit en
    Octobre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets

    Informations forums :
    Inscription : Octobre 2006
    Messages : 60
    Points : 89
    Points
    89
    Par défaut Super !!!!
    Bravo et merci pour ce tutoriel qui m'a permis de découvrir cette fonctionnalité de façon rapide et claire

  3. #23
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Frédéric,
    Merci pour tes congratulations.
    Philippe
    Citation Envoyé par fredo38 Voir le message
    Bravo et merci pour ce tutoriel qui m'a permis de découvrir cette fonctionnalité de façon rapide et claire

  4. #24
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 767
    Points : 10 776
    Points
    10 776
    Par défaut
    Merci beaucoup pour ce tutoriel ! Autant le filtre de "base" est connu autant ce genre de filtre élaboré est assez bluffant en terme de possibilités !

  5. #25
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Merci Philippe pour ce tutoriel.

    Une fonctionnalité d'Excel que je ne connaissais pas et qui m'a l'air fort pratique.
    Je teste tout ça de suite.

    Suite du message: Je viens de finir le tutoriel, c'est super clair, merci encore et félicitations!
    En somme c'est un équivalent du SELECT FROM WHERE Sql sur une table de données => super pratique.

    Par contre en termes de performance, ça donne quoi sur des grosses tables avec filtres complexes?

  6. #26
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Darkzimus,
    Citation Envoyé par Darkzinus Voir le message
    Merci beaucoup pour ce tutoriel ! Autant le filtre de "base" est connu autant ce genre de filtre élaboré est assez bluffant en terme de possibilités !
    Merci pour ton appréciation qui me fait extrêmement plaisir.
    Philippe

  7. #27
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Zeco,
    Citation Envoyé par issoram Voir le message
    Merci Philippe pour ce tutoriel.
    Une fonctionnalité d'Excel que je ne connaissais pas et qui m'a l'air fort pratique.
    Je teste tout ça de suite.
    Suite du message: Je viens de finir le tutoriel, c'est super clair, merci encore et félicitations!
    En somme c'est un équivalent du SELECT FROM WHERE Sql sur une table de données => super pratique.
    Par contre en termes de performance, ça donne quoi sur des grosses tables avec filtres complexes?
    Merci aussi pour ton gentil commentaire qui donne envie de continuer à partager ses connaissances.
    Pour ce qui est des performances, je viens à l'instant de faire un test sur une liste de données de 65000 lignes et 4 colonnes ($A$1:$D$65001) avec un filtre portant sur une zone de critères de 2 lignes et 3 colonnes ($G$1:$I$3).
    Sexe|Crit |Véhicule
    ...F...|FAUX|
    .......|........|Opel
    Le critère calculé est =ANNEE(C2)=1966

    Test effectué à l'aide de la fonction qui est présente dans le classeur qui accompagne le tutoriel.
    Dans cet exemple 10 038 lignes sont exportées avec création de la feuille qui reçoit les lignes exportées. Temps 2 secondes 32

  8. #28
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Merci pour la réponse,

    Si j'ai un peu de temps je ferais des comparatifs de performances vs l'utilisation de tableaux en VBA.

    Et merci encore de partager (de ton temps et tes connaissances) et de contribuer à enrichir la bibliothèque des tutoriels.

  9. #29
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    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

  10. #30
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cette discussion sur le forum m'a inspiré un nouvel exemple dans l'utilisation des filtres avancés.
    Dans un classeur Excel nous avons une liste de données ayant en colonne A le nom de différents services d'une entreprise et dans les autres colonnes d'autres données.
    L'idée est d'envoyer un classeur contenant une feuille à chacun des services concernés avec les données qui lui sont propres.
    Les zones :
    de données en feuille [db] avec en colonne A le nom des services,
    de critères cellules $C$1:$C$2 dans la feuille [Param]
    La feuille [Param] contiendra également la liste des services qui aura été exportée sans les doublons par la même méthode advancedFilter
    La procédure
    Elle se déroulera en deux étapes dont la deuxième est subdivisée en trois parties.
    Etape 1 : Création d'une liste unique basée sur la colonne 1 (Services).
    Etape 2 : Dans une boucle
    2.1 Création nouvelle feuille
    2.2 Exportation vers nouvelle feuille
    2.3 Déplacement de cette nouvelle feuille vers un nouveau classeur
    Le code de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub ExportDataByAdvancedFilter()
     ' Déclaration + Initialisation des variables
     Dim rngList As Range, rngData As Range, rngCriteria As Range, r As Long
     Set rngData = shtData.Range("A1").CurrentRegion
     With shtParam
      Set rngList = .Range("A1"): Set rngCriteria = .Range("C1:C2")
     End With
     ' Etape 1 - Création d'une liste unique basée sur la colonne 1
     With rngData
     .Resize(, 1).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=rngList, Unique:=True
     End With
     ' Etape 2 - Boucle sur la liste avec placement du critère
     '           Création nouvelle feuille
     '           Exportation vers nouvelle feuille
     '           Déplacement de cette nouvelle feuille vers un nouveau classeur
     For r = 1 To rngList.CurrentRegion.Rows.Count - 1
      rngCriteria.Cells(2, 1) = rngList.Offset(r) ' Insère le critère
      ' 2.1 - Création d'une feuille
      Sheets.Add before:=Sheets(1): Sheets(1).Name = rngList.Offset(r)
      ' 2.2 - Exportation vers nlle feuille suivant critère
      With rngData
      .AdvancedFilter xlFilterCopy, rngCriteria, Sheets(1).Range("A1")
      End With
      ' 2.3 - Déplacement de la feuille cers un nouveau classeur
      Sheets(1).Move
      '
      ' Ici code pour sauver classeur, Envoyer par email etc...
      '
     Next
    End Sub
    Fichiers attachés Fichiers attachés

  11. #31
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'ai pas bien été rapide sur ce coup mais voila:
    il suffit de rajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ' Déclaration + Initialisation des variables
     Dim rngList As Range, rngData As Range, rngCriteria As Range, r As Long, Fichier As String, Chemin As String
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      ' Ici code pour sauver classeur, Envoyer par email etc...
      '
    Fichier = rngList.Offset(r)
    Chemin = "C:\Users\moncompte\Documents\dossier\juin 2013\"
    ActiveWorkbook.SaveAs Chemin & Fichier
    ActiveWorkbook.Close SaveChanges:=True
    pour qu'automatiquement mes classeurs s'enregistrent
    je gagne un temps précieux.

    ce qu'il me reste a faire c'est comprendre comment copier aussi une feuille supplémentaire et que les cacluls qu'elle contient fonctionnent

    Merci de votre aide pour le boulot deja fourni !

  12. #32
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    je remonte ce fil car j'achoppe toujours si la possibilité de rajouter une feuille contenant des calculs ayant pour source l'extraction de données.

    si quelqu'un avait une idée cela serai fort aimable !!

    Merci

  13. #33
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je crois qu'il serait bon que tu ouvres un nouveau sujet de discussion et que tu expliques clairement ce que tu souhaites faire car sur cette discussion ouverte à la base pour présenter un tutoriel, tu déposes une partie de réponse qui correspond à une autre discussion Ventiler des lignes dans des classeurs séparés où manifestement le filtre élaboré t'apporte une partie de réponse.

  14. #34
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 208
    Points : 85 078
    Points
    85 078
    Billets dans le blog
    15
    Par défaut
    Salut,

    Excellent tutoriel que je viens de découvrir. Il me sera d'une grande utilité dans mon travail.

    Merci Philippe.

  15. #35
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Malick,
    Le Filtre avancé d'excel est en effet un outil qui quand on en a compris les possibilités offre des possibilités extraordinaire et l'exploiter en VBA permet de gagner de nombreuses lignes de codes.
    Merci d'en avoir apprécié la lecture.
    Philippe

  16. #36
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Mais il est génial ce truc

    Comme la plupart qui l'ont remarqué, il est vrai que l'on passe souvent les données sous Access pour pouvoir effectuer ce genre de requêtes.

    Ces filtres élaborés, inconnus pour moi, sont une mise d'information très précieuses.
    Je l'ai lu un peu en diagonale, mais si ce genre de problème ressurgit, nul doute que je ferai bon usage de ton tuto

  17. #37
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 949
    Points : 28 950
    Points
    28 950
    Billets dans le blog
    53
    Par défaut
    Bonjour Olivier,
    En effet Le filtre élaboré d'excel fait partie de ces outils d'excel comme la consolidation, table de données, etc. sous-exploités par l'utilisateur qui souvent apprend d'une façon empirique ce logiciel.
    Tous ces outils regorgent pourtant de possibilités insoupçonnées et surtout quand on utilise en VBA la méthode qui leur est associée. Cela évite au programmeur des dizaines voir plus de lignes inutiles (voir petit exemple pour le filtre avancé dans cette discussion)

    Merci de ton appréciation pour la lecture de ce tutoriel et d'avoir pris le temps d'en rendre compte, cela fait plaisir.

  18. #38
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour Philippe,

    Dire que je n'avais toujours pas lu cet excellent tutoriel, j'aurai loupé quelque chose, encore bravo. Je le garde sous le coude.

    Bonne continuation et merci pour tes contributions.

  19. #39
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 929
    Points
    55 929
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Tous ces outils regorgent pourtant de possibilités insoupçonnées et surtout quand on utilise en VBA la méthode qui leur est associée. Cela évite au programmeur des dizaines voir plus de lignes inutiles
    Je plussoie au moins 10.000 fois

  20. #40
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    Oui, c'est toujours le problème mis en lumière lors des formations, ne vaut-il pas mieux investir dans la découverte ou l’approfondissement de l'outil que l'on possède que d'acquérir le dernier né en pensant que "ça ira" mieux
    C'est sûr que le retour sur investissement au niveau de la lecture de tutos de ce genre devrait enthousiasmer plus d'un dirigeant de société...

    cordialement,

    Didier

Discussions similaires

  1. Insertion d'un filtre élaboré d'excel ds fonction automation
    Par MELINE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/09/2005, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo