Plusieurs filtrage avec case à cocher ?

Bonjour le forum,

Je veux filtrer un tableau, mais pas avec le bouton "filtrer" du menu "trier et filtrer", beaucoup trop simple.

Non, je veux filtrer par l'intermédiaire de cases à cocher.

Je veux que lorsque la case est cochée, le jour ou le mois apparaisse dans mon tableau, et bien sûr disparaisse quand je décoche.

J'ai commencé une macro qui fonctionnait lorsque je voulais filtrer un seul jour, mais cela ne fonctionne plus avec plusieurs jour, ou lorsque je veux également filtrer sur la 2é colonne (mois)

J'ai copié le code dans "feuil1" et "module1", parce que je ne sais pas vraiment où le mettre.

Et cerise sur le gâteau, je veux que le nombre de jours, mois présent dans le tableau s'affiche après filtrage (cellules vertes).

Avec

NB.SI.ENS()

, le filtrage n'est pas pris en compte, et avec

SOUS.TOTAL()

, je n'arrive pas à mettre de critere

Merci d'avance

47classeur1.xlsm (19.69 Ko)

Et je voudrais aussi savoir s'il est possible de faire une grande "case" avec toutes les cases à cocher (ce que j'ai fait en bidouillant pour l'exemple), ce qui me permettra de tout déplacer d'un coup.

Merci d'avance

capture

Bonsoir,

Un exemple utilisant un module de classe...

Je n'utilise pas les objets issus de la Boîte à Outils "Formulaire", mais ceux issus de la BO "Contrôles"...

Le bouton "Init" n'est là que pour réinitialiser les tableaux VBA, en cas de changement dans le code.

A l'ouverture du fichier, ces tableaux sont initialisés, et un clic sur un jour ou un mois provoque le filtre.

Si dé-sélection de tous les jours et/ou mois, les filtres se réinitialisent en affichant toutes les valeurs..

Par contre, même en mettant ces objets dans une Frame, afin de les grouper, la manipulation de ces groupes reste hasardeuse, aussi j'ai pris l'option de figer les volets dans l'onglet...

Si ça t'intéresse...

Bonne soirée

241essai-mdl-chkbx.xlsm (63.18 Ko)

Cousinhub,

Merci beaucoup pour cette macro, que j'ai enfin réussi à adapter à mon vrai tableau.

J'ai cependant quelques questions.

Dans le script "Module1", à la ligne

Set Plg = Range("H3:I" & Cells(Rows.Count, "H").End(xlUp).Row)

J'ai compris que le numéro de ligne doit être celui du titre de la colonne.

Par compte, je n'ai pas compris comment fonctionne le numéro de colonne, parce que si je rajoute une colonne J, sans modifier le script, le filtrage sur la colonne J, fonctionne.

Dans le script "Classe1", je souhaiterais que lorsque qu'il n'y a aucune case de cochée, il n'y ait rien dans la liste, pour obliger l'utilisateur à cocher quelque chose (je vais d'ailleurs chercher comment cocher/décocher toutes les cases en même temps).

Je voudrais savoir également, s'il est possible de faire un code pour qu'au lieu de mettre le numéro de colonne à la main, le code entre dans une variable le numéro de colonne du titre jour, pour avoir quelque chose comme ça.

Plg.AutoFilter Field:=variable

Merci

Bonjour,

jaco a écrit :

Dans le script "Module1", à la ligne

Set Plg = Range("H3:I" & Cells(Rows.Count, "H").End(xlUp).Row)

J'ai compris que le numéro de ligne doit être celui du titre de la colonne.

Par compte, je n'ai pas compris comment fonctionne le numéro de colonne, parce que si je rajoute une colonne J, sans modifier le script, le filtrage sur la colonne J, fonctionne.

Le filtre s'applique sur toutes les colonnes...

Toutes les lignes qui doivent être masquées le sont...

jaco a écrit :

Dans le script "Classe1", je souhaiterais que lorsque qu'il n'y a aucune case de cochée, il n'y ait rien dans la liste, pour obliger l'utilisateur à cocher quelque chose (je vais d'ailleurs chercher comment cocher/décocher toutes les cases en même temps).

Après quelques essais, je ne suis pas sûr que le fonctionnement tel que tu le voudrais, te donne quelque chose de "fonctionnel"...

jaco a écrit :

Je voudrais savoir également, s'il est possible de faire un code pour qu'au lieu de mettre le numéro de colonne à la main, le code entre dans une variable le numéro de colonne du titre jour, pour avoir quelque chose comme ça.

Plg.AutoFilter Field:=variable

Euh, je ne comprends pas trop ta question????

Tu voudrais chercher, via une ligne de code, la colonne contenant les jours (ainsi que les mois)?

Ton tableau ressemble à quoi?

Travailler sur des fichiers exemple, c'est bien, mais quand ce fichier respecte la structure exacte de ton fichier réel, c'est nettement mieux...

Bon courage, et bon W-E

Rechercher des sujets similaires à "filtrage case cocher"