Bonjour New_VBA8User,
Je te propose :
-De transformer ton tableau de la feuille "Filtered Data SAP" en un tableau "ListObject" : tu sélectionnes toutes les celulles avec les données (y compris la ligne entête), tu cliques sur "insertion" puis sur "Tableau" :
tu coches "Mon tableau comporte des en-têtes" :
et OK.
-De créer un module et d'y insérer le code :
Sub ApplyFilter(zSelect As String)
Dim oLO As ListObject
Dim oRange As Range
Dim oCell As Range
Dim aCriteria() As Variant
Dim lRowEnd As Long, i As Long, lCol As Long
'Affecter une référence à la table de la feuille "Filtered Data SAP"
Set oLO = ThisWorkbook.Worksheets("Filtered Data SAP").ListObjects(1)
'Effacer tous les filtres actifs
oLO.AutoFilter.ShowAllData
'On charge le tableau de critères avec les valeurs contenues de la feuille
lRowEnd = ThisWorkbook.Worksheets(zSelect).UsedRange.Rows.Count
Set oRange = ThisWorkbook.Worksheets(zSelect).Range(ThisWorkbook.Worksheets(zSelect).Cells(2, 1), ThisWorkbook.Worksheets(zSelect).Cells(lRowEnd, 1))
ReDim aCriteria(oRange.Rows.Count)
i = 0
For Each oCell In oRange
aCriteria(i) = oCell.Value2
i = i + 1
Next
'On récupère l'index de la colonne à filtrer
lCol = oLO.ListColumns(zSelect).Index
oLO.Range.AutoFilter lCol, aCriteria, xlFilterValues
End Sub
En complément, dans ton formulaire "Userform_MenuClean", tu ajoutes le code suivant :
Private Sub CommandButton_FiltreDescription_Click()
ApplyFilter "Description"
End Sub
Private Sub CommandButton_FiltreDescription2_Click()
ApplyFilter "Description2"
End Sub