1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub restaure_filtre()
Dim col As Integer
Set w = ActiveSheet
w.AutoFilterMode = False
For col = 1 To UBound(filterArray(), 1)
'On vérifie s'il y a un filtre pour chaque colonne
If filterArray(col, 1) = True Then
'Il y a un filtre. Est-ce un multi-selection?
If filterArray(col, 2) = 7 Then
Monfiltre = Split(filterArray(col, 3), delim)
w.Range(currentFiltRange).AutoFilter Field:=col, Criteria1:=Monfiltre, Operator:=xlFilterValues
Else
'le filtre est "classique"
Monfiltre = filterArray(col, 3)
If filterArray(col, 2) = 1 Or filterArray(col, 2) = 2 Then
Monfiltre2 = filterArray(col, 4)
w.Range(currentFiltRange).AutoFilter Field:=col, Criteria1:=Monfiltre, Operator:=filterArray(col, 2), Criteria2:=Monfiltre2
Else
w.Range(currentFiltRange).AutoFilter Field:=col, Criteria1:=Monfiltre
End If
End If
End If
Next
End Sub |
Partager