XL 2013 filtre à plusieurs critéres

mobenjilali

XLDnaute Junior
bonjour
Je veux faire un filtre sur la même colonne avec plusieurs critères, le besoin est dans cette formule qui ne fonctionne pas bien sur
merci de votre aide

ActiveSheet.Range("A1:$G$30000").AutoFilter Field:=5, Criteria1:="TEST", Criteria2:="=*DEM**", Criteria3:="=*ETT**", Criteria4:="=*REM**", Criteria5:="=*REF**", Criteria6:="=*SCO**", Criteria7:="=*SOC**", Criteria8:="=*TRT**", Criteria9:="VOIR ", Operator:=xlAnd
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
je confirme c'est "xlOr"
VB:
Sub test()
    ActiveSheet.Range("A1:$G$30000").AutoFilter Field:=5, _
                                                Criteria1:="TEST", _
                                                Criteria2:="=*DEM*", _
                                                Criteria3:="=*ETT*", _
                                                Criteria4:="=*REM*", _
                                                Criteria5:="=*REF*", _
                                                Criteria6:="=*SCO*", _
                                                Criteria7:="=*SOC*", _
                                                Criteria8:="=*TRT*", _
                                                Criteria9:="VOIR ", _
                                                Operator:=xlOr


End Sub
 

job75

XLDnaute Barbatruc
Bonjour mobenjilali, fanch55, patricktoulon,

Utilisez la colonne auxiliaire H :
VB:
Sub test()
ActiveSheet.Range("H2:H30000") = "=SIGN(COUNT(LN(E2=""TEST""),SEARCH(""DEM"",E2),SEARCH(""ETT"",E2),SEARCH(""REM"",E2),SEARCH(""REF"",E2),SEARCH(""SCO"",E2),SEARCH(""SOC"",E2),SEARCH(""TRT"",E2),LN(E2=""VOIR "")))"
ActiveSheet.Range("H1:H30000").AutoFilter Field:=1, Criteria1:=1
End Sub
On pourrait aussi utiliser le filtre avancé.

A+
 

job75

XLDnaute Barbatruc
La macro pour le filtre avancé entre le critère en H2 :
VB:
Sub test2()
ActiveSheet.Range("H2") = "=COUNT(LN(E2=""TEST""),SEARCH(""DEM"",E2),SEARCH(""ETT"",E2),SEARCH(""REM"",E2),SEARCH(""REF"",E2),SEARCH(""SCO"",E2),SEARCH(""SOC"",E2),SEARCH(""TRT"",E2),LN(E2=""VOIR ""))"
ActiveSheet.Range("A1:G30000").AdvancedFilter xlFilterInPlace, ActiveSheet.Range("H1:H2")
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
ce que je voulais dire c'est cela
comme ça on a qu'un array a gérer ,modifier
et elle peut etre ré utilisée pour une autre colonne
VB:
Sub test()
    x = Split("TEST,*DEM,*ETT,*REM,*REF,*SCO,*SOC,*TRT,VOIR  ", ",")    'ajouter ou supprimer au besoins un item
    MsgBox formule(x, "E2")
' tu filtre ici 
End Sub

Function formule(x, cel) As String
'les items pour XLPART doivent etre précédés d'un((*))
    formule = "=SIGN(COUNT("
    For i = 0 To UBound(x)
        If InStr(x(i), "*") > 0 Then x(i) = Replace(x(i), "*", "SEARCH(""""") & """""," & cel & ")" Else x(i) = "LN(" & cel & ",""""" & x(i) & """"")"
    Next
    formule = formule & Join(x, ",")
    Debug.Print formule
End Function
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas