Creer un bouton activer / desactiver le filtre

lycos9 Messages postés 25 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 3 avril 2012 - 29 mars 2012 à 11:45
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 29 mars 2012 à 16:31
Bonjour,

Ma question est simple:
Quel code VB permet de creer un bouton dans un classeur excel qui, en cliquant dessus une premiere fois filtrerai les données et en cliquant dessus une nouvelle fois, desactiverai le filtre?

Merci d'avance pour votre aide
bonne journée a tous

10 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 mars 2012 à 12:57
Bonjour,
Connais pas !
Faudra-t-il donc (une fois encore) déplacer ta discussion vers la section adéquate ?
Je te laisse personnellement là, sans le moindre scrupule (pourquoi en aurais-je donc à ta place ?)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 mars 2012 à 12:57
Bonjour,

Tu as essayé en mettant un booléen qui changerais d'état pour dire ce qui est affiché ?
(En membre publique d'un module par exemple)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
lycos9 Messages postés 25 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 3 avril 2012
29 mars 2012 à 13:07
Heu nonn je suis débutant...
pEUX-TU M4EN DIRE PLUS,,
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
29 mars 2012 à 14:32
Bonjour,

Tu parles de VB alors que tu travailles avec Excel, donc c'est du VBA.

Tu n'as pas à utiliser de code pour créer un bouton, tu passes en mode création et tu colles un bouton de commande sur ta feuille.

Sans doute veux-tu parler d'un code qui simule l'application d'un filtre ou qui l'annule comme si tu utilisais ce filtre manuellement, mais tu ne dis pas de quel type de filtre il s'agit.
Quel qu'il soit utilises donc l'enregistreur de macro !

Cheyenne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
29 mars 2012 à 15:27
Et quelle version d'Excel est-ce ?

J'ai une solution dans la version 2003 sans forcément utiliser un bouton :
via l'événement Worksheet_BeforeDoubleClick dans le module de classe de la feuille,
les filtres sont annulés si le double click est effectué sur le titre d'une colonne filtrée (ShowAllData)
sinon si c'est au sein d'une colonne filtrée alors le filtre est appliqué au contenu de la cellule,
d'une pierre deux coups en sorte ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
0
lycos9 Messages postés 25 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 3 avril 2012
29 mars 2012 à 15:28
Ok pour le bouton,

En effet, je souhaite d'un code qui simule l'application d'un filtre ou qui l'annule.

Mais pour moi il n'est pas possible d'utiliser l'enregistreur de macro pour réaliser cette opération puisque tout dépend si le filtre auto est appliqué ou non.
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
29 mars 2012 à 15:54
Re,

Il me semble que tu n'aies pas saisi l'utilité de l'enregistreur de macro. Celui-ci enregistre les manipulations et les transpose en code.

Il te suffit d'enregistrer une macro avec l'application du filtre et sans.
Tu auras ainsi le code tout préparé que tu vas scinder en deux parties, filtre et sans filtre.

Tu déclares une variable de type Boolean par exemple bFiltre en Global ou en Static dans la procédure du bouton.

Dans la macro que tu attribues à ton bouton tu décides d'appeler la portion de code adéquate en fonction de l'état de bFiltre.
Par exemple :
   Select Case bFiltre
      Case True:  '  supprimer le filtre
      Case False: '  activer le filtre
   End Select
   bFiltre = Not bFiltre

Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
29 mars 2012 à 16:13
Re,

Si tu veux conserver l'état du filtre d'une ouverture à l'autre du classeur, il faut déclarer ta variable en Global, l'enregistrer dans une cellule avant de quitter l'appli.
Pour récupérer cette valeur tu colles dans la procédure Workbook_Open :
bFiltre = Cells(ligne,colonne).Value

Ou à la place d'une variable tu peux te servir d'une cellule pour y stocker l'état de ton filtre, dans ce cas je te laisse faire pour changer le code du Select Case (ou de la condition) en conséquence.

Cheyenne
0
lycos9 Messages postés 25 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 3 avril 2012
29 mars 2012 à 16:19
Merci beaucoup pour ton aide,
Mais je ne sais pas utiliser une variable type boolean...
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
29 mars 2012 à 16:31
Re,

Oh la la, il y a du boulot...

Une variable de type Boolean n'accepte que deux états : True (-1) ou False (0)
Pour en savoir plus utilises l'aide d'Excel, tu aurais déjà dû commencer par là !!!

Cheyenne
0
Rejoignez-nous