lycos9
Messages postés25Date d'inscriptionjeudi 2 février 2012StatutMembreDernière intervention 3 avril 2012
-
29 mars 2012 à 11:45
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
MarcPL
Messages postés172Date d'inscriptionjeudi 8 décembre 2011StatutMembreDernière intervention21 juillet 20132 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 !
lycos9
Messages postés25Date d'inscriptionjeudi 2 février 2012StatutMembreDerniè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.
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 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
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 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.
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 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à !!!