XL 2013 filtre à plusieurs critéres

mobenjilali

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo