Filtrage de données sur plusieurs colonnes

Bonjour a tous, j'ai un problème avec excel et c'est un fichier à faire pour le boulot mais j'ai beau chercher je ne trouve rien d'intéressant sur le net. Votre aide serait la bienvenue Je vous explique: je gère une base de données avec des clients. J'ai des lignes avec les coordonnées des clients et les travaux qu'on à déjà réalisé chez eux. Si je met des filtres dans le réalisé 1 pour trouver les clients ayant fait par exemple des FenPVC il va me sortir la liste des clients ayants fait des FenPVC en réalisé 1 et ceux les ayant fait en réalisé 2 ou plus vont passer aux oubliettes. Vous aurez compris ma question, je cherche à savoir comment on peux faire pour trouver TOUS les clients ayants réalisé ça chez eux. Le problème est assez difficile a expliquer mais je pense qu'avec un extrait de mon fichier vous comprendrez mieux . Si quelqu'un sait comment faire, je lui en serait très reconnaissant de m'expliquer ... Parce que moi je suis perdu Merci d'avance pour votre aide.

Bonjour,

Une proposition en vba.

Dans la textbox en N2 saisir une partie du type pour filtrer dessus.

Un double-clic dans la textbox la vide et ôte le filtre.

eric

Merci Eric de votre réactivité c'est parfait ! pouvez vous m'expliquer comment procéder pour refaire cette textbox dans mon vrai fichier ? est ce que c'est possible d'en mettre plusieurs pour filtrer plusieurs caractéristiques ? et enfin est ce qu'on peut le mettre non pas sous forme de texte mais sous menu déroulant ?

comment procéder pour refaire cette textbox dans mon vrai fichier ?

Ajouter le ruban Développeur et insérer un textbox ActiveX.

Double-cliquer dessus pour ajouter le code.

est ce que c'est possible d'en mettre plusieurs pour filtrer plusieurs caractéristiques ?

Oui. Sur quelles colonnes ?

Après il faut gérer quelles lignes garder en fonction de tous les critères, c'est plus ou moins simple...

et enfin est ce qu'on peut le mettre non pas sous forme de texte mais sous menu déroulant ?

Tout est possible et il faut plus ou moins de temps.

Aujourd'hui je ne pense pas pouvoir.

eric

Oui. Sur quelles colonnes ?

Après il faut gérer quelles lignes garder en fonction de tous les critères, c'est plus ou moins simple...

Sur le modèle, le coloris, et les spécificités. Mais finalement cette solution n'est pas terrible pour mon cas car j'ai un fichier de 800 clients et c'est beaucoup trop long le temps de tri ! Le but de ce fichier est de montrer au client et s'il doit attendre 25minutes que le fichier soit trié ça ne va pas Si vous avez autre chose a me proposer je suis ouvert

c'est beaucoup trop long le temps de tri

Au début de la Sub filtrer ajoute :

Application.ScreenUpdating = False

et re-teste le temps.

eric

C'est bien mieux Une solution pour faire la même chose sur d'autre colonnes de façon a combiner plusieurs critères ?


Ah oui aussi, quand je supprime ce qu'il y a dans le textbox, il ne m'affiche plus tous les clients mais seulement ceux qui correspondent a ma dernière recherche.

Bonjour,

Ca prend forme...

Pourrais-tu faire un test de réactivité et me dire le temps moyen sur ta base stp ?

Il reste sans doute du débogage, ce n'est pas fini. Si tu remarques une grosse anomalie commence à signaler.

eric

Bonjour,

Les listes sur l'extrait et sur mon fichier ne sont pas les mêmes je t'ai joins dans la 3ème feuille les vraies listes. Est ce que c'est possible que par exemple si on choisit le FenPVC il propose dans la liste suivante que les modèles de fenêtres en PVC ? A part ça dans ma base quand je copie le code de la subbox la liste déroulante ne propose que le choix vide.

Merci Eric de ton implication dans mon problème.

Romain

Bonjour,

Tu as du code dans Feuil1, Feuil2, Thisworkbook et Module1.

Tu avais tout copié ?

Quand tu changes le code ou après plantage il faut réinitialiser les variables : soit ouvrir le fichier, soit aller sur feuille Listes et revenir sur Feuil1.

Dans Module1 Sub init adapter tous les Feuil1 si ta feuille de données s'appelle autrement

Comme tu as souvent qu'un seul modèle, quand tu changes de Type je mets d'office le modèle 1 dans le filtre. Ca ne fait pas perdre de temps si tu dois en changer, et tu en gagnes les autres coups.

Quand tu as fini de tester mettre la dernière ligne du Sub filtrer en commentaire avec une ' devant : 'Msgbox ...

eric

En effet je n'avais pas tout copié autant pour moi... ça marche déja bien mieux. Maintenant j'ai mes listes en feuille 2 et mes subbox m'affichent une liste après l'autre or je voudrais que quand je choisis FenPVC il me sorte dans la subbox suivante, tous les modèles de FenPVC, ou PeAlu, les modèles de PeAlu ainsi de suite... concernant le temps mon ordi mets environ 3 secondes mais le fichier est loin d'être complet pour l'instant. je voulais d'abord m'assurer du fonctionnement de ces filtres avant de taper tout ce qu'ils ont fait...

Romain

je voudrais que quand je choisis FenPVC il me sorte dans la subbox suivante, tous les modèles de FenPVC, ou PeAlu, les modèles de PeAlu ainsi de suite...

Tu n'as pas essayé le dernier fichier je pense (tu peux y supprimer la feuiille Liste2 d'ailleurs, j'ai dû oublier de l'enlever).

mon ordi mets environ 3 seconde

un peu trop long à mon goût, je vais voir mais il faudra un peu de temps...

En attendant continue de tester si le comportement te parait correct.

Oublié de dire :

1) les Réalisés répondant aux critères sont surlignés. Si ça n'est pas utile on peut gagner du temps là dessus en sortant des boucles plus tôt (et se contenter de ne surligner que le 1er sur la ligne)

2) si tu es sûr que majuscules et minuscules seront toujours correctes on peut gagner aussi beaucoup de temps dessus.

eric

edit : 2 petites anos corrigées. Prendre PJ

Bonjour,

Très bien, ce serait mieux si la valeur de la deuxième subbox ne s'entrait pas directement après avoir mis un choix dans la première subbox, mais que simplement elle reste vide avec la possibilité de rentrer ou pas une valeur.

Le surlignage des réalisé ne m'est pas très utile par contre.

Pour les majuscules et minuscules, oui elles seront toujours bien correctes car le tableau se remplit avec des listes déroulantes SAUF la colonne spécificités.

Romain

Ah je ne sais pas ce que j'ai mal fait, avant ça marchait mais maintenant il me met que la variable n'est pas définie dans Private Sub combo box 1

"shList.[B2].Resize(shList.Cells(Rows.Count, "B").End(xlUp).Row).ClearContents "

Bonjour,

Ah je ne sais pas ce que j'ai mal fait...

Tu as mal lu le post du 23 Juin 2014, 16:19 :

Quand tu changes le code ou après plantage il faut réinitialiser les variables : soit ouvrir le fichier, soit aller sur feuille Listes et revenir sur Feuil1.

et tout se rétabli.

J'ai pas mal remanié le code, j'obtiens 0.9 s pour 1000 lignes.

Pour Spécificités je ne tiens toujours pas compte de la case donc, et vu que c'est saisie libre (?) j'ai remplacé le filtre = par 'Contient'.

Le surlignage impacte peu en ressources, du coup j'ai laissé, mais mis optionnel. Je pense que ça peut être intéressant de voir quel Réalisé sur la ligne rempli les critères.

A tester

eric

Tu as mal lu le post

Non Non j'ai bien lu, mais je pense savoir d'ou vient le problème que toi tu n'a pas sur ton fichier : j'ai nommé les listes car j'en avais besoin pour le remplissage du tableau avec les menu déroulants. En PJ, ton fichier avec les mêmes listes que moi.

c'est saisie libre (?)

Oui c'est saisie libre dans la colonne spécificités.

Je pense que ça peut être intéressant de voir quel Réalisé sur la ligne rempli les critères.

En fait, j'ai surligné une ligne sur deux en bleu dans mon tableau pour que ça soit plus lisible donc le surlignage ne fonctionne que lorsque la ligne qui répond aux critères est en blanc. Sinon la ligne reste en bleu.

Romain.


Avec la piece jointe c'est mieux

Bonjour,

Les noms ne me gênent pas.

Si tu pouvais dire les manip à faire pour reproduire le plantage stp.

Et il n'est pas résolu en allant sur une autre feuille et en revenant ?

eric

Bonjour Eric,

Si tu pouvais dire les manip à faire pour reproduire le plantage stp.

Le programme marchait jusqu’à ce que je me rende compte que tous mes noms étaient décalés. Donc je les ai renommés et ça ne marchait plus.

Dans le fichier que j'ai mis en PJ c'est pareil. Je peux rentrer les critères dans la subbox, mais rien ne se passe. Impossible de RAZ. Et le fait d'aller dans la feuille "listes" n'y change rien.

Romain

Je n'ai pas ce soucis avec ton fichier. Tout semble fonctionner très bien.

Eric

Je suis perdu. je t'ai fait une copie de mon fichier original, j'y ai juste enlevé quelques clients.

Romain

3extrait-2.xlsx (176.11 Ko)
Rechercher des sujets similaires à "filtrage donnees colonnes"