Userform avec checkboxes permettant de filtrer avec plusieurs critères

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 !

miniboulette

XLDnaute Nouveau
Bonjour,

J'aurai besoin d'un coup de main pour un travail que je dois faire sur une base de données.
Je débute en VBA, soyez indulgents avec moi...

Voilà, j'ai un tableau avec plusieurs colonnes, dont une que je cherche à trier grâce à des checkbox.

Il y a 12 choix possibles:
- banane
- fraise
- pomme...ce que vous voulez 🙂. Et il se peut que dans ma cellule se trouvent à fois banane et fraise.

Je voudrais donc mettre en place 12 checkbox correspondants à mes fruits, et lorsque je coche une checkbox, toutes les cellules CONTENANT mon fruit apparaissent.

----> ça j'ai déjà réussi à le faire (voir mon exemple). Quand je coche juste 'banane', les résultats s'affichent correctement, mais quand je veux cocher 'pomme', et bien j'aimerais que ceux-ci s'ajoutent aux résultats obtenus avec le filtre 'banane'...et je veux la même chose si je coche 8 checkbox.

ô génies du codage, j'en appelle à votre bonté
 

Pièces jointes

Re : Userform avec checkboxes permettant de filtrer avec plusieurs critères

Salut miniboulette,

Un test:

A placer dans le projet de ton Userform, et à condition que les numéros des labels à côtés des checkbox correspondent aux numéros des checkbox. (Exemple: Label1 va avec CheckBox1).



Code:
Dim maPlage As Range
Dim Ws As Worksheet
Dim i%
Dim FlagSelect As Boolean

Private Sub CommandButton1_Click()

    Dim ObjX As Object
    
    maPlage.Rows.Hidden = True
    FlagSelect = False
    
    With Ws
    
        For Each ObjX In Me.Controls
            
            If TypeName(ObjX) = "CheckBox" Then
                
                If ObjX.Value = True Then
                
                    For i = maPlage.Row To maPlage.Row + maPlage.Rows.Count - 1
                        
                        If .Cells(i, maPlage.Column + 1).Value Like "*" & Me.Controls("Label" & Right(ObjX.Name, 1)).Caption & "*" Then .Rows(i).Hidden = False
                        FlagSelect = True
                        
                    Next i
                    
                End If
                
            End If
        
        Next ObjX
        If FlagSelect = False Then maPlage.Rows.Hidden = False
        
    End With

End Sub

Private Sub UserForm_Initialize()
    
    Set Ws = Sheets("Sheet1")
    
    With Ws
    
        Set maPlage = .Range("A2:B" & .Range("A" & .Rows.Count).End(xlUp).Row)
        maPlage.Rows.Hidden = False
        
    End With
    
End Sub

N'hésite pas si tu as des questions !
Bonne journée
 
Dernière édition:
Re : Userform avec checkboxes permettant de filtrer avec plusieurs critères

Bonjour VDAVID et Merci pour ta réponse!

Mais ça ne marche pas...🙁j'ai vérifié que les n° de labels correspondent aux n° de checkbox, tout est ok.
J'ai testé les checkboxes, et peu importe la quelle je coche, on m'affiche les résultats pour 'abricot'.

Je remets le fichier avec ton code, et un bouton pour faire apparaître le userform.
 

Pièces jointes

Re : Userform avec checkboxes permettant de filtrer avec plusieurs critères

Re,

Oui désolé j'ai fait une erreur dans le code que j'ai posté en premier, mais je l'ai modifié entre-temps (11h12).

J'ai modifié la propriété de ObjX de .Caption à .Name et ça marche nickel 😉

Re copie-colle le code du premier poste dans le projet de feuille
 
Re : Userform avec checkboxes permettant de filtrer avec plusieurs critères

aaaahh oui ça fonctionne, tu es génial !! rapide et efficace 😎

Je vais maintenant l'appliquer à quelque de chose de plus sérieux que les fruits... mais c'est déjà gagné grâce à toi 🙂

Encore merci !
 
- 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

Réponses
9
Affichages
833
Réponses
1
Affichages
540
Réponses
4
Affichages
640
Réponses
4
Affichages
908
Retour