Adaptation filtre inversé avec plusieurs colonnes

LeRocher

XLDnaute Nouveau
Bonjour,

J'essaye d'adapter le filtre inversé de Pascal (https://www.excel-downloads.com/threads/filtre-inverse.38186/) sur mon fichier mais je galère un peu.
Excusez moi pour le code sale j'ai commencé le VBA il y a une semaine :/

Le filtre de Pascal fonctionne bien pour moi mais j'ai une modification à faire et c'est là que ça coince.
Mes titres sont étalés sur 3 colonnes comme si c'était des parties, sous parties etc. Dans la première colonne j'ai ce que j’appelle des catégories, dans la deuxième des pièces et dans la troisième mes critères.

Je voudrai pouvoir choisir dans mon userform une catégorie puis une pièce dans cette catégorie puis le critère dans la pièce puis la valeur à chercher. (Si c’est pas clair je peux ré-expliquer). Le problème c'est que pour des raisons de mise en page mes cellules sont fusionnées donc je n'arrive pas à avoir mes catégories.

Une idée pour m'aider ?

P.S. Ma boite de dialogue ne m'affiche pas exactement ce que je veux dans la bonne case pour l'instant, il me reste un peu de tambouille à faire

PP.S. Vu la variété de données que je mets dans mon tableau (très allégé ici) j'envisage d'enrichir le filtre comme ici : https://www.excel-downloads.com/threads/filtre-automatique.50452/
 

Pièces jointes

  • fichier_light.xlsm
    223.8 KB · Affichages: 38
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Adaptation filtre inversé avec plusieurs colonnes

Bonjour LeRocher et bienvenue,

À te lire, j'ai le sentiment qu'un fichier aurait dû être joint, mais je n'en vois point :( ... et très sincèrement, sa présence aiderait à la compréhension de la demande.

En mode avancé, quand tu insères un fichier, les tailles maximales sont renseignées ... se pourrait-il que ton fichier soit trop "lourd"? (tu peux essayer de zipper ou simplement de supprimer une partie des données, tant que tu laisses de quoi comprendre la structure réelle du fichier complet)

Bon ben, tout compte fait, je vois que le fichier est arrivé! :rolleyes:
 

Modeste

XLDnaute Barbatruc
Re : Adaptation filtre inversé avec plusieurs colonnes

Re-bonjour,

Maintenant que j'ai vu le fichier, je me dis qu'il y a deux solutions:
- soit tenter d'écrire un code un peu "usine à gaz" pour prendre en compte les cellules fusionnées (parfois horizontalement, parfois verticalement et parfois les deux en même temps :eek: ... Mais il faudrait que tu expliques comment il faut considérer, par exemple:
* le "S" en B4:C4, aligné à droite
* le "kg" en B9:C9, aligné à gauche
* le "Comments" en B24:C24, aligné au centre ... qui n'est à la hauteur d'aucune des cellules fusionnées de la colonne A
- soit supprimer ces fusions de cellules en recopiant la même info dans les différentes cellules préalablement fusionnées (si tu débutes en VBA, essaie de te simplifier la tâche ... plutôt que l'inverse! :))

Il faudra par ailleurs que tu expliques comment on traite les mentions "picture" dans les cellules bleues en colonne B :confused:
 

LeRocher

XLDnaute Nouveau
Re : Adaptation filtre inversé avec plusieurs colonnes

Merci pour ta réponse déjà.

Ensuite :

Re-bonjour,

Maintenant que j'ai vu le fichier, je me dis qu'il y a deux solutions:
- soit tenter d'écrire un code un peu "usine à gaz" pour prendre en compte les cellules fusionnées (parfois horizontalement, parfois verticalement et parfois les deux en même temps :eek: ... Mais il faudrait que tu expliques comment il faut considérer, par exemple:
* le "S" en B4:C4, aligné à droite
* le "kg" en B9:C9, aligné à gauche​

Aligné à droite ou à gauche ça n'a pas vraiment d'importance : je peux tout mettre à droite ou tout mettre à gauche si ça simplifie le problème.

* le "Comments" en B24:C24, aligné au centre ... qui n'est à la hauteur d'aucune des cellules fusionnées de la colonne A​

J'ai juste oublié de supprimer cette ligne quand j'ai allégé le fichier. Normalement elle est en face d'une autre catégorie.
J'ai 5 catégories en tout mais mon fichier était trop gros pour passer

- soit supprimer ces fusions de cellules en recopiant la même info dans les différentes cellules préalablement fusionnées (si tu débutes en VBA, essaie de te simplifier la tâche ... plutôt que l'inverse! :))
Mon fichier doit permettre d'identifier mes catégories facilement d'où les grandes plages de cellules fusionnées.
L'idée de mon filtre c'est d'affiner au fur et à mesure en réduisant les choix sélectionnables.
Par exemple si je sélectionne dans mon filtre "Champ 1 UserForm (2)" en A25 puis "B" en B27 je dois pouvoir choisir seulement "Picture" , "number" , "L" ou "S" (C27:C30)
Recopier les données sans fusionner les cellules c'est possible seulement dans le cas où j'ai deux cellules fusionnées horizontalement comme en B4:C4

Il faudra par ailleurs que tu expliques comment on traite les mentions "picture" dans les cellules bleues en colonne B :confused:

Les lignes "picture" contienne des photos que j'ai du enlever pour pouvoir envoyer le fichier. J'ai juste besoin de les déplacer avec mes colonnes, pas de filtrer dessus. Ça je sais faire
 

Modeste

XLDnaute Barbatruc
Re : Adaptation filtre inversé avec plusieurs colonnes

Re,

Je continue de penser que c'est se compliquer la vie :(

Dans la pièce jointe, j'ai rassemblé au début du code du UserForm, 2 variables globales et les 3 Sub que j'ai adaptées (avec en commentaire, le début et la fin de la partie modifiée).
La première liste se "garnit" à l'ouverture du UserForm.
Les 2 listes suivantes affichent les items, en fonction de la sélection dans les précédentes.
Je ne suis pas allé plus loin, ne comprenant pas ce que tu veux faire au-delà.

Teste toujours jusque là pour voir si ça correspondrait (et si ça te sert à quelque chose!?)
Ne pas utiliser les boutons (Dé)Filtrer, dont je ne sais ce qu'ils provoqueraient.
 

Pièces jointes

  • Zones de listes en cascade (LeRocher).xlsm
    219.2 KB · Affichages: 41

LeRocher

XLDnaute Nouveau
Re : Adaptation filtre inversé avec plusieurs colonnes

Re,

C'est exactement ça que je veux pour sélectionner mon critère de recherche. Pour finir, je souhaite avoir dans la 4ème liste toutes les valeurs de la ligne correspondante pour pouvoir en choisir une et filtrer mes colonnes selon le principe du filtre inversé de Pascal.

Tu dis que je me complique la vie, est-ce que tu penses à une autre solution ? J'ai imaginé ça pour accéder rapidement au critère que je cherche, sachant que je souhaite pouvoir faire une recherche sur chaque critère du tableau (c'est une synthèse avec seulement les infos importantes). Juste modifier le userform en mettant des cases à cocher par exemple ça ne simplifie rien je pense, je me trompe ?
En fait dans mes 5 catégories, je peux retrouver un critère qui va avoir le même nom mais qui correspond à une information différente à chaque fois (2 critères avec le même nom dans 2 catégories différentes), c'est pour ça que j'ai imaginé une sélection en cascade.
Mon fichier est bien plus gros que ce que j'ai pu mettre sur le forum, je ne sais pas comment expliquer mieux.
Il y a pas mal de lignes "picture" sur lesquelles je ne pourrait de toute façon pas filtrer, c'est peut être pour ça que tu as l'impression que je me complique ?

J'ai deux usages pour mon fichier : tout afficher pour avoir une vue d'ensemble facilement lisible - d'où la mise en page - ou restreindre l'affichage à quelques colonnes.

Si ça peut t'aider à comprendre, je mets une capture d'écran de mon fichier
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    111 KB · Affichages: 33
  • Capture.jpg
    Capture.jpg
    111 KB · Affichages: 39
  • Capture.jpg
    Capture.jpg
    111 KB · Affichages: 49

Modeste

XLDnaute Barbatruc
Re : Adaptation filtre inversé avec plusieurs colonnes

Allez, avant d'aller dormir ...

La vraie complication, ce sont ces cochonneries de cellules fusionnées: ça oblige à compter le nombre de cellules fusionnées en hauteur, pour déterminer le nombre d'items à afficher.
Et puis, quand tu fusionnes horizontalement, il faut "zapper" la 3e ListBox, pour afficher directement les valeurs dans la 4e!

La capture d'écran fournie ne m'est hélas d'aucun secours: on dirait un Dalmatien écrasé :D ou l'œuvre d'un imitateur de Vasarely sous LSD :rolleyes:

Bref, ci-dessous, une adaptation du fichier précédent, qui garnit la 4e liste (y compris quand colonnes B et C fusionnées) ... Tu verras bien!
À cette heure, je ne me porte pas volontaire pour adapter encore, si un cas de figure imprévu devait survenir (ce qui est tout de même assez vraisemblable)

PS: j'ai compressé un peu les images, pour alléger le fichier (vu la pertinence des illustrations, je me suis dit qu'on ne perdrait rien d'essentiel ;))

Une bien bonne nuit à tout le petit monde du forum et au Rocher ... de Monaco, de Gibraltar ou de Ferrero
 

Pièces jointes

  • Zones de listes en cascade (LeRocher) V2.xlsm
    121.6 KB · Affichages: 72

LeRocher

XLDnaute Nouveau
Re : Adaptation filtre inversé avec plusieurs colonnes

Rebonjour,

Il me reste un petit problème (vraiment petit) : j'ai des textes relativement long à afficher dans mes ListBox donc je voudrai bien avoir un curseur horizontal mais je ne trouve pas quelle propriété changer dans ma ListBox.

J'ai cherché un peu mais j'ai pas trouvé comment faire, je dois pas utiliser les bons mots clés.

Une idée ?
 

Modeste

XLDnaute Barbatruc
Re : Adaptation filtre inversé avec plusieurs colonnes

J'arrivais, bonhomme, avec 15 bonnes minutes de retard, pour évoquer cette même propriété ColumnWidths :p ... Mais cette fois j'ai rafraîchi avant de poster!!

Tu crois que je rouille aussi, Marc?
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof