Filtre multiple dans une messagebox

Bonjour à tous,

Une petite question. Est-ce possible de demander à Excel de filtrer sur un ou plusieurs critères d’une même colonne en fonction de ce qui est coché dans une mssgbox ?

Je suis en train de construire une macro (à mon rythme...) mais je ne suis pas finalement sur que ce soit réalisable. Il me faudrait l'avis d'un expert

Je mets en copie mes 2 fichiers pour exemple. Le fichier a été simplifié pour l'exemple.

Fichier avec macro : "Fichier macro 2"

Fichier de base que la macro ouvre : "base"

Merci pour votre retour,

14fichier-macro2.xlsm (21.08 Ko)
13base.xlsx (10.89 Ko)

Bonjour,

Tu supprime tout le code que tu as dans le module du Formulaire et tu colles celui-ci :

Private Sub boutonok_Click()

    Dim Plage As Range
    Dim Tbl() As String

    'le dimensionnement du tableau avec l'affectation des valeurs
    'est fonction du choix des différentes CheckBox

    'donc, si la case est cochée, dimensionne et affecte le numéro de groupe (ici, 1)
    If CheckBox1.Value = True Then
        ReDim Tbl(1 To 1): Tbl(1) = 1
    End If

    'si la case est cochée, redimensionne et affecte le numéro de groupe (ici, 2)
    'mais si le tableau n'a pas été initialisé car CheckBox1=False dimensionne le tableau
    If CheckBox2.Value = True Then
        If Not (Not Tbl) Then
            ReDim Preserve Tbl(1 To 2): Tbl(2) = 2
        Else
            ReDim Tbl(1 To 1): Tbl(1) = 2
        End If
    End If

    'idem que pour les précédentes
    If CheckBox3.Value = True Then
        If Not (Not Tbl) Then
            ReDim Preserve Tbl(1 To UBound(Tbl) + 1): Tbl(UBound(Tbl)) = 3
        Else
            ReDim Tbl(1 To 1): Tbl(1) = 3
        End If
    End If

    'seulement si le tabeau a été initialisé
    If Not (Not Tbl) Then

        Application.ScreenUpdating = False
        With ActiveSheet: Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 5).End(xlUp)): End With
        Plage.AutoFilter
        Plage.AutoFilter 5, Tbl, xlFilterValues
        Application.ScreenUpdating = True

    End If

End Sub

Ce code est attaché au bouton et non aux cases à cocher donc, une fois que ton choix est fait, clique sur le bouton pour voir le résultat. Le filtrage est fait sur la colonne "Nouveaux groupes" (n°5) et ceci par rapport au classeur "Base.xlsx" dont j'ai importé la base dans une feuille du classeur "Fichier macro2.xlsm". Quand tu fais les tests, elle doit être active donc, visible à l'écran !

Un très grand merci à vous Theze !!

C'est top top top !

Bonjour,

Content de t'avoir aidé et merci pour ton retour

Rechercher des sujets similaires à "filtre multiple messagebox"