Récupérer le texte d’un bouton comme critère de filtre

Bonjour Forum (et bonne année) !

Pour faciliter l’usage d’un fichier, j’ai créé des filtres actionnés par des boutons.

Problème : si je multiplie les boutons, je dois créer une macro par bouton et associer chaque nouveau bouton à cette nouvelle macro.

Je rêve donc d’une macro « générique », qui utilise le texte présent dans le bouton comme critère du filtre (voir fichier joint).

Quelqu’un saurait-il m’aider à mettre ça au point ?

Merci !!!

33filtrage.xlsm (20.77 Ko)

Bonjour

Un essai

Bonjour gloub,

Bonjour Banzai64,

Voici un autre type de solution qui utilise un filtre avancé dont les critères sont renseignés avec des listes de validation.

67filtrage.xlsm (19.30 Ko)

A+

Merci à tous les 2 !!!

@Frangy : ta proposition répond à la question telle que je l'ai exposée, mais elle suppose de redéfinir le filtre élaboré à chaque fois que je voudrai ajouter un critère, je préfère donc en rester aux boutons qu'on peut ajouter au gré des besoins, sans rien redéfinir.

Merci quand même (je pense que je me reservirai du coup de la liste déroulante associée à un filtre élaboré).

@banzaï64 : ta proposition est super. J'ai juste 2 soucis avec :

  • je ne sais pas où s'arrête la plage qui est filtrée. Le fait de fonctionner avec une plage nommée permet de la visualiser en cas de besoin. Là j'ai testé des rajouts de lignes et de colonnes. Des fois ça marche, des fois non, je ne sais pas trop pourquoi (il faut dire que je ne parle pas trop VBA)
  • les filtres se cumulent (une fois la colonne C filtrée, su je clique sur un bouton colonne D, le filtrage se fera sur les données conservées après filtrage sur la C). Ca pourrait m'être bien utile pour d'autes applications, mais là, je préfère en rester à un filtrage non cumulatif entre colonnes (quand je clique sur un bouton colonne D, le filtrage précédent sur la colonne C est annulé).

Est-ce que c'est possible de faire fonctionner la macro comme ça ?

Merci !!!

Bonsoir

A vérifier

La solution proposée conviendra si tu n'as pas énormément de bouton (voir contrainte dans le fichier)

Celle de Frangy à le mérite d'être plus souple et facilement extensible (if suffit de faire des listes de choix dans une page)

Mais c'est toi qui voit

Merci Banzai, ça me va très bien (la limitation ne pose pas problème pour l'instant, mais je garde au chaud le code de Frangy au cas où).

J'ai fait une tentative avec une plage nommée au lieu de déterminée par une formule, et ça marche aussi.

Un détail : j'aimerais que le filtre conserve les cellules qui contiennent le texte situé dans le bouton, pas uniquement celles qui sont exactement égales au contenu du bouton.

Autrement dit : si j'appuie sur le bouton "Durand", une cellule contenant Dupont+Durand restera visible car elle contient "Durand".

Comment faire ?

Merci encore.

Bonjour

Remplaces la ligne correspondante par celle-ci

Nom = "*" & Sh.TextFrame.Characters.Text & "*"

Génial !

Merci beaucoup pour ton aide.

Rechercher des sujets similaires à "recuperer texte bouton comme critere filtre"