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