Ajouter un bouton de filtrage sur un userform

Bonjour,

J'ai un userform sur lequel je voudrais ajouter un bouton pour filtrer des données de façon "statique".

J'ai une base de données avec une colonne "statut". Celle-ci contient 3 possibilités : Annulée, Diffusable, En création. Je souhaite afficher dans l'userform uniquement les lignes contenant le terme "Diffusable" à l'ouverture de l'userform. Ensuite, en cochant un bouton, je voudrais afficher l'ensemble des lignes.

J'espère que vous pourrez m'aider.

David

Bonjour David,

Pour avoir uniquement les lignes avec "Diffusable", je te conseille de filtrer ton tableau TabBD avec une clé, comme le présente superbement bien Jacques Boisgontier ici (Filtre de lignes par une clé dans un Array 2D) !
Je te laisse essayer ?

Bonne soirée,

Baboutz

Bonjour Baboutz,

Merci pour ce tuyau. J'ai justement récupéré le userform sur le site de Jacques Boisgontier.

Par contre, je pense effectivement que c'est une bonne idée de récupérer le code que vous m'avez indiqué mais je n'ai malheureusement pas le niveau VBA nécessaire pour l'intégrer dans le code existant. J'ai essayé mais sans succès.

Pouvez-vous m'aider davantage ?

David

Re,

Tu te lances dans des codes VBA de plus en plus poussés, tu devrais reprendre depuis la base pour apprendre VBA et comprendre ce que tu fais.
Le code n'est pas si compliqué que cela, et je n'ai quasiment rien changé pour y arriver...

Cela te convient ?

Bonne chance pour la suite,

Baboutz

Merci Baboutz,

Je suis d'accord avec toi sur le fait qu'il faut que je reprenne les bases de VBA mais il me manque du temps pour le moment... Je vais reprendre l'ensemble des codes quand j'aurais terminé le travail que je dois faire.

La macro fonctionne bien pour n' afficher que les "Diffusable". C'est déjà une très bonne chose. En complément, pouvez-vous m'aider pour ajouter un bouton afin d' afficher les autres statuts comme indiqué en jaune et rouge sur l'image ci-dessous:

image

David

Il te suffit de faire une petite macro sur l'évènement change de la CheckBox. SI = True, alors tu exécutes la premières macro que tu avais pour remplir la ListBox, sinon tu exécutes la nouvelle que je t'ai confectionné !

Bonne soirée,

Baboutz

Bonjour Baboutz,

Ok, je vais essayer et je te tiendrai au courant.

Bonne journée,

David

Je pense y être arrivé ! Par contre je suis pas du tout sûr de ce que j'ai fait. Peux-tu y jeter un œil ?

David

Bonjour David,

L'idée est là. Mais malheureusement tu n'as fait que copié l'ancienne macro, et tu appelles l'évènement UserForm_Initialize... C'est pas si horrible mais ce qui est dommage c'est que tu effectues pleins d'actions pour rien !

Tiens, regarde le code de ta CheckBox :

Cela te convient-il ?

Bonne soirée,

Baboutz

Bonjour Baboutz,

Merci beaucoup, c'est parfait. Je t'avoue ne pas avoir compris l'ensemble du code pour le moment mais je vais l'étudier plus en détail.

ça m'a déjà permis de progresser en Excel VBA.

Bonne continuation,

David

Re Bonjour Baboutz,

Après avoir réalisé des tests, je me suis aperçu que lorsque j'ouvre l'userform et qu'il affiche dans la liste uniquement les fiches diffusables , j'ai quand même accès au fiches ayant un autre statut dans les menus déroulants. Un exemple:

En mode : fiche diffusable uniquement:

image

"mod chas 1" est au statut "Annulée", mais elle apparaît quand même dans le menu déroulant ci-dessous et je peux la sélectionnée.

image

Y'a t'il un moyen simple d'empêcher cela ?

Merci par avance,

David

Salut David,

Content que le précédent fichier te convienne !
Alors oui c'est normal, ce que j'ai fait suite à ta demande, c'est de changer le remplissage de ta ListBox. Donc pour empêcher cela, il te suffit de changer ton code de remplissage de tes ListBox pour prendre cela en compte !

Bonjour Baboutz,

Peux-tu m’aiguiller davantage parce que je vois pas ce qu’il faut modifier ? Désolé

David

Bonjour Baboutz,

J'ai essayé à nouveau de mettre en place la gestion des "diffusables" sur les listes déroulantes mais sans succès. Voici ce que j'ai fait :

image

J'ai ajouté le morceau de code entre les lignes horizontales faites en ==== et j'ai ajouté "2" pour le TabBD.

Je pense que la modification est a apporter à cet endroit mais je n'en suis pas sur.

David

Bonjour David,

Je ne t'oublie pas mais j'ai pas mal de boulot perso en ce moment. J'essaie de regarder cela ce soir si j'ai un peu de temps !

Un essai. Comme tu peux le voir, c'est fonctionnel mais améliorable, pour le moment si tu sélectionnes un item avec ComboBox puis que tu mets l'étoile pour tout -> Problème.

Je pense que je vais reprendre tout ton fichier car c'est un vrai bordel, parfois il y a des complications pour rien ! Mais je ne suis pas sûr d'avoir le temps cette semaine, donc patience.

Bonne soirée/journée,

Baboutz

Bonjour Baboutz,

Merci pour ce que tu as déjà fait. Je te fais confiance pour la simplification du programme parce que je n'ai déjà pas le niveau pour le faire fonctionner comme je le souhaite. Pas de souci pour l'attente. Nous sommes sur un forum et je comprends très bien que la majorité des inscrits y participent par passion mais que nous avons tous une vie par ailleurs.

Bonne journée,

David

Bonjour David,

Merci beaucoup. Ce que j'ai fait dans le précédent fichier te convient-il ?

Bonne journée,

Baboutz

Bonjour Baboutz,

Excuse-moi j'ai zappé des notifications et je viens juste de voir ton message.

Dans le dernier fichier que tu as mis à disposition je n'ai plus d'informations dans les menus déroulants.

En ce qui concerne le code, j'ai regardé mais je t'avoue ne pas avoir le niveau pour l'évaluer. Mais comme tu l' as écrit précédemment, je pense qu'il y a effectivement du ménage à faire.

Bonne journée,

David

Bonjour Baboutz,

Peux-tu me dire quand tu penses être en mesure de me répondre stp ? Si tu ne penses pas pouvoir le faire cette semaine, nous pouvons peut-être passer le relais à un autre utilisateur du forum ?

Bonne journée,

David

Rechercher des sujets similaires à "ajouter bouton filtrage userform"