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 :

Peut-on utiliser FILTRE et TRIERPAR ensemble ? [XL-365]


Sujet :

Excel

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Par défaut Peut-on utiliser FILTRE et TRIERPAR ensemble ?
    Bonjour tout le monde.

    Je rencontre un problème avec un tableau.
    Pour que ce soit le plus précis possible, je vous ai fait une copie d'écran.
    Nom : filtrer et trierpar.jpg
Affichages : 1337
Taille : 373,0 Ko

    Je ne comprends pas pourquoi le résultat me donne des 213_, 201_, ... alors que j'ai indiqué de me filtrer les ID=209_ (T_Evenements[Id]=N3 , avec N3=209_)

    FILTRE et TRIERPAR sont ils incompatibles (alors que FILTRE et TRIER fonctionnent parfaitement ensemble) ?


    Si comme je le crains, ces deux fonctions sont incompatibles, comment faire pour TRIER plusieurs colonnes avec un FILTRE (je souhaite utiliser ces nouvelles fonctions données grâce à Excel 365).

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Peut-on utiliser FILTRE et TRIERPAR ensemble ? => Non, à mon avis.

    FILTRE ne travaille pas sur ton tableau, mais sur le résultat de TRIERPAR qui n'est pas ton tableau de départ mais une plage dynamique qui ne contient pas les intitulés de ton tableau initial => tu ne peux donc pas filtrer sur T_Evenements[Id].

    Les deux fonctions sont donc incompatibles car elles utilisent toutes les deux des références au tableau initial, alors que la fonction englobante utilise non pas le tableau initial mais le résultat de la fonction englobée. C'est pourquoi il existe TRIER (qui requiert l'index de la colonne) et TRIERPAR (qui requiert la plage-colonne).

    Tu dois donc utiliser TRIER comme fonction englobante de FILTRE:

    Nom : 2020-12-31_065508.png
Affichages : 1238
Taille : 7,3 Ko


    Si tu veux trier en utilisant le nom de la colonne, tu peux utiliser EQUIV

    Nom : 2020-12-31_065648.png
Affichages : 1215
Taille : 7,8 Ko


    Avis qui n'engage que moi: Les plages dynamiques d'Excel 365 sont assez gourmandes en calcul sur de grandes plages. Je les utilise presqu'exclusivement comme plages intermédiaires de travail (alimenter une liste de validation, permettre des listes de validation en cascade, générer des listes ou des valeurs ou pour simplifier des formules, en vba pour alimenter des combobox sans devoir passer par trop de construction et sans devoir utiliser un scripting.dictionary), mais rarement comme tableau final de résultat, pour lequel je préfèrerai passer par Power Query, comme pour ce que tu utilises ici.


    Qui plus est, il est à mon sens plus économique en termes de temps de calcul de trier sur le filtre (TRIER(FILTRE(...)) que de filtrer sur le tri (FILTRE(TRIER(...)) car le tri est plus coûteux que le filtre et devrait donc être opéré sur le plus petit nombre possible de lignes.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Par défaut
    Merci Pierre pour ta réponse.

    En fait, comme je voulais faire du tri sur 3 colonnes, j'ai voulu utiliser TRIERPAR et le résultat était censé remplir une listbox.

    Tant pis, je vais revenir au classique, en utilisant du VBA pur.

    Bonne journée

  4. #4
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu peux y arriver en deux passes, grâce au fait que l'on peut référencer une plage dynamique par l'adresse de sa première cellule suffixée de #

    Nom : 2020-12-31_115720.png
Affichages : 1244
Taille : 24,0 Ko

    dès lors, tu peux directement utiliser l'adresse de la cellule suffixée pour alimenter ton listbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
      ListBox1.List = Feuil3.Range("k3#").Value
    End Sub

    Ici, j'ai nommé K3 Liste pour me détacher de son emplacement, même si dans ce cas de conception, on déplacera rarement la plage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
      ListBox1.List = Range("Liste#").Value
    End Sub
    Nom : 2020-12-31_120047.png
Affichages : 1224
Taille : 47,3 Ko


    J'ai essayé de combiner les deux formules en une seule, mais jusqu'ici, ce n'est pas probant, même avec la fonction LET en laquelle je fondais certains espoirs pour résoudre ce cas...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Septembre 2020
    Messages : 67
    Par défaut
    Merci beaucoup, j'ignorais que l'on pouvait référencer une plage dynamique par l'adresse de sa première cellule suffixée de #.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/03/2005, 14h45
  2. [ActiveX] Peut-on utiliser un Controle ActiveX avec Java
    Par waldo2188 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/02/2005, 11h39
  3. [CR] Peut-on utiliser CR dans un programme en C
    Par mboucetta dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 11/10/2004, 10h56
  4. Peut-on utiliser les SGBDs libres pour construire un DWH ?
    Par daabos dans le forum Alimentation
    Réponses: 6
    Dernier message: 01/10/2004, 10h35
  5. Peut-on utiliser plusieurs canaux DMA simultanément ?
    Par le mage tophinus dans le forum Assembleur
    Réponses: 18
    Dernier message: 26/09/2003, 09h18

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