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,
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