Pb avec ActiveSheet.AutoFilter.Filters.Item(i).Criteria1

Bonjour,

Je rencontre quelques soucis avec ma macro VBA.

J'ai réalisé une macro qui permet de calculer le nombre de filtres automatiques ainsi que le nombre de selections sur chaques filtres auto pour une colonne.

Lorsque je la fais tourner sur un classeur d'une seule colonne pas de pb mais quand je l'active pour un fichier avec une multitude de colonnes on me retourne que la premiere selection de chaque filtre auto.

Pourriez vous m'aider?

Merci par avance

Cordialement.

Voici mon code:

Private Sub CommandButton1_Click()

Dim vZone As String

Dim vDiscipline As String

Dim vEntreprise As String

Dim iFilt As Integer

Dim i, j As Integer

Dim numFilters As Integer

Dim crit1 As Variant

' FILTRES AUTOMATIQUES NON ACTIFS '

If Not ActiveSheet.AutoFilterMode Then

ActiveSheet.Range("B1").Value = "GLOBAL"

ActiveSheet.Range("J1").Value = "GLOBAL"

ActiveSheet.Range("K1").Value = "GLOBAL"

Exit Sub

End If

' NOMBRES DE COLONNES FILTREES '

numFilters = ActiveSheet.AutoFilter.Filters.Count

MsgBox "Sheet(" & ActiveSheet.Name & ") has " & numFilters & " filters."

' INITIALISATION DES VARIABLES '

vZone = ""

vDiscipline = ""

vEntreprise = ""

' BOUCLE SUR FILTRES DE CHAQUE COLONNE '

For i = 1 To numFilters

If ActiveSheet.AutoFilter.Filters.Item(i).On Then

crit1 = ActiveSheet.AutoFilter.Filters.Item(i).Criteria1

' LE PROBLEME EST ICI IsArray est toujours à false ???????'

If IsArray(crit1) Then

' FILTRES MULTIPLES SUR UNE COLONNE '

For j = 1 To UBound(crit1)

MsgBox "MULTI" + "crit1(" & i & ") is '" & crit1(j) & "'"

If i = 1 Then

vZone = vZone + Mid(CStr(crit1(j)), 2) + "/"

ElseIf i = 9 Then

vDiscipline = vDiscipline + Mid(CStr(crit1(j)), 2) + "/"

ElseIf i = 10 Then

vEntreprise = vEntreprise + Mid(CStr(crit1(j)), 2) + "/"

End If

Next j

Else

' FILTRE UNIQUE SUR UNE COLONNE '

MsgBox "UNIQUE" + "crit1(" & i & ") is '" & crit1 & "'"

If i = 1 Then

vZone = Mid(CStr(crit1), 2)

ElseIf i = 9 Then

vDiscipline = Mid(CStr(crit1), 2)

ElseIf i = 10 Then

vEntreprise = Mid(CStr(crit1), 2)

End If

End If

End If

Next i

End Sub

Rechercher des sujets similaires à "activesheet autofilter filters item criteria1"