Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Filtrage automatique / macros vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

oussama4210

XLDnaute Nouveau
Bonjour,
Donc voilà je vous explique mon problème , je souhaite effectuer un filtre automatique corcernant ma 2eme colonne sur ma feuille donnée
, le but est de pouvoir filtrer ma colonne selon les checkbox cochées! Jusqu'à maintenant j'ai réussi avec 1 Seul critères à la fois , ce que je souhaite faire c'est de selection plusieurs checkbox et un code vba qui permet d'automatiser le filtrage sur la même colonne
Merci d'avance et j'espère que j'étais clair dans mes explications
 
Re : Filtrage automatique / macros vba

Bonjour et bienvenue sur XLD,


Si sur le principe la demande est claire, sans classeur exemple contenant des données non confidentielles et la macro, difficile de proposer une solution adaptée à votre configuration.

A+
 
Re : Filtrage automatique / macros vba

Re,

une solution possible: à chaque clic sur une checkbox on remplit un tableau avec le caption de chaque checkbox à True. Puis on utilise ce tableau comme critère de filtre

Code:
Dim TabCheck() ' à déclarer en haut de la feuille pour être vu par toutes les sub

Code:
Sub FiltreTab()  ' à rajouter dans la feuille de code
 Erase TabCheck
 For Each obj In ActiveSheet.OLEObjects
    If TypeOf obj.Object Is msforms.CheckBox Then
        If obj.Object.Value Then
            x = x + 1
            ReDim Preserve TabCheck(1 To x)
            TabCheck(x) = obj.Object.Caption
        End If
    End If
 Next obj
 Sheets("données").Range("$a$2:$db$114049").AutoFilter Field:=2, Criteria1:=TabCheck, Operator:=xlFilterValues
End Sub

et pour chaque checkbox faire appel à cette sub FiltreTab en modifiant le code existant
Code:
Private Sub JDe_Click()
 FiltreTab 
End Sub

Utiliser un tableau comme critère n'existe pas sur XL2003, je n'ai donc pas pu tester....

A+
 
Re : Filtrage automatique / macros vba

Je comprend pas tout , enfin je sais pas dans quel feuille dois je mettre les code , peux tu stp me modifier le fichier excel que j'ai mis et mettre le code vba ! Ça sera plus clair pour moi
 
Re : Filtrage automatique / macros vba

C'est bon ton code marche mais le seul soucis que quand je décoche un Check box c'est à dire la désactivation du filtrage , mon code vba plante au niveau de la ligne

Sheets("données").Range(....
 
Re : Filtrage automatique / macros vba

Re,

pour chaque évènement click des checkbox ne laisser que l'appel à la sub FiltreTab, comme proposé au post #4.

corriger la sub FiltreTab:
Code:
Sub FiltreTab()  ' à rajouter dans la feuille de code
 Dim x As Integer, obj As Object
 Erase TabCheck
 For Each obj In ActiveSheet.OLEObjects
    If TypeOf obj.Object Is msforms.CheckBox Then
        If obj.Object.Value Then
            x = x + 1
            ReDim Preserve TabCheck(1 To x)
            TabCheck(x) = obj.Object.Caption
        End If
    End If
 Next obj
 If x > 0 Then
    Sheets("données").Range("$a$2:$db$114049").AutoFilter Field:=2, Criteria1:=TabCheck, Operator:=xlFilterValues
 Else
    Sheets("données").Range("$a$2:$db$114049").AutoFilter Field:=2
 End If
End Sub

s'il y a au moins une checkbox sélectionnée, on filtre selon le tableau; si aucune checkbox sélectionnée il n'y a plus de filtre;

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…