Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Filtre multicritère

3 réponses
Avatar
HD
Bonjour,

Je veux faire un filtre avec critère multiple sur une colonne... mais le
critère multiple provient des données d'une feuille et le nombre de critère
peut être variable. J'ai donc créer cette macro :

filtre=""
i=10
Do
If filtre = "" Then
filtre = Chr(34) & Sheets("Param").Cells(i, 7).Value & Chr(34)
Else
filtre = filtre & "," & Chr(34) & Sheets("Param").Cells(i,
7).Value & Chr(34)
End If
i = i + 1
Loop Until Sheets("Param").Cells(i, 7).Value = ""
Selection.AutoFilter Field:=9, Criteria1:=Array(filtre),
Operator:=xlFilterValues

Mais cela ne passe pas avec le Array... Lorsque je regarde le résultat je
n'ai aucune données de filtrées.

Comment faire ?

Vous remerciant d'avance,

Cordialement,

HD

3 réponses

Avatar
DanielCo
Bonjour,
Dim Tablo(3) As String
Tablo(0) = "a1"
Tablo(1) = "a2"
Tablo(2) = "a3"
Tablo(3) = "a4"
ActiveSheet.Range("$A$1:$A$13").AutoFilter Field:=1, Criteria1:=Tablo,
Operator:=xlFilterValues
Cordialement.
Daniel


Bonjour,

Je veux faire un filtre avec critère multiple sur une colonne... mais le
critère multiple provient des données d'une feuille et le nombre de critère
peut être variable. J'ai donc créer cette macro :

filtre=""
i
Do
If filtre = "" Then
filtre = Chr(34) & Sheets("Param").Cells(i, 7).Value & Chr(34)
Else
filtre = filtre & "," & Chr(34) & Sheets("Param").Cells(i,
7).Value & Chr(34)
End If
i = i + 1
Loop Until Sheets("Param").Cells(i, 7).Value = ""
Selection.AutoFilter Field:=9, Criteria1:=Array(filtre),
Operator:=xlFilterValues

Mais cela ne passe pas avec le Array... Lorsque je regarde le résultat je
n'ai aucune données de filtrées.

Comment faire ?

Vous remerciant d'avance,

Cordialement,

HD
Avatar
MichD
Bonjour,

Un petit exemple :

Ceci n'est pas disponible pour les versions Excel antérieures
à Excel 2007.

'---------------------------------------------
Sub test()
Dim x(), B As Long

For a = 2 To 8 Step 2
B = B + 1
ReDim Preserve x(1 To B)
x(B) = Range("A" & a).Value
Next

Range("A1:A20").AutoFilter field:=1, Criteria1:=Array(x),
Operator:=xlFilterValues

End Sub
'---------------------------------------------



MichD
---------------------------------------------------------------
"HD" a écrit dans le message de groupe de discussion :
kn2miq$1l0p$

Bonjour,

Je veux faire un filtre avec critère multiple sur une colonne... mais le
critère multiple provient des données d'une feuille et le nombre de critère
peut être variable. J'ai donc créer cette macro :

filtre=""
i
Do
If filtre = "" Then
filtre = Chr(34) & Sheets("Param").Cells(i, 7).Value & Chr(34)
Else
filtre = filtre & "," & Chr(34) & Sheets("Param").Cells(i,
7).Value & Chr(34)
End If
i = i + 1
Loop Until Sheets("Param").Cells(i, 7).Value = ""
Selection.AutoFilter Field:=9, Criteria1:=Array(filtre),
Operator:=xlFilterValues

Mais cela ne passe pas avec le Array... Lorsque je regarde le résultat je
n'ai aucune données de filtrées.

Comment faire ?

Vous remerciant d'avance,

Cordialement,

HD
Avatar
HD
Merci MichD ça fonctionne très bien !!!

@+
HD