Filter probleempje..

Status
Niet open voor verdere reacties.

rvt1982

Gebruiker
Lid geworden
10 aug 2011
Berichten
156
Goedemiddag all,

Ik wil graag een lijst filteren dmv lijst welke nummer deze NIET moet bevatten.

Ik heb de volgende script die ook goed werkt.. maar nu wil ik het zelfde alleen de nummers wat deze NIET bevat dmv "<>"..
Echter krijg ik het niet voor elkaar met de onderstaande script, wat doe ik fout ?

Alvast bedankt.

Code:
        Dim i As Long
    
        Dossiers = Application.Transpose(Workbooks("Dossier.xlsm").Sheets("Tijdelijke Data").Range("TijdelijkeDataC1"))
        
        For i = 1 To UBound(Dossiers) 'convert to string
            Dossiers(i) = CStr(Dossiers(i))
        Next i

        With Workbooks("10 10-09-2014-DATA.xls").Sheets("Data").Cells(1).CurrentRegion
            .AutoFilter 1, Dossiers, Operator:=xlFilterValues
        End With


Dit wertkt helaas niet..
Code:
        With Workbooks("10 10-09-2014-DATA.xls").Sheets("Data").Cells(1).CurrentRegion
            .AutoFilter 1,[COLOR="#FF0000"]"<>" & [/COLOR]Dossiers, Operator:=xlFilterValues
        End With
 
De macro opnemen en dit is het resultaat


Code:
    ActiveSheet.Range("$A$2:$E$12").AutoFilter Field:=1, Criteria1:="<>*Dossiers*" _
        , Operator:=xlAnd
 
Thnx Niels,

Maar dit werkt helaas niet, zoiezo is "Dossiers" een reeks met nummers en het is niet een woord wat ik zoek..
en "<>" & Dossier heb ik al geprobeerd.. en werkt ook niet.

Maar toch bedankt voor het mee denken :thumb:

De macro opnemen en dit is het resultaat


Code:
    ActiveSheet.Range("$A$2:$E$12").AutoFilter Field:=1, Criteria1:="<>*Dossiers*" _
        , Operator:=xlAnd
 
Met een omweg,


Geef het bereik waar de dossiers die uitgesloten moeten worden de naam dossiers
pas de rest aan aan jouw situatie.



Code:
Sub filter()

For Each cl In Range("dossiers") 
    c01 = c01 & "|" & cl.Value & "|"
Next


For Each cl In Range("l:l").SpecialCells(2) 'aanpassen aan jouw bereik
    If InStr(c01, "|" & cl.Value & "|") = 0 Then c02 = cl.Value & "|" & c02
Next

ActiveSheet.Range("$L$7:$M$22").AutoFilter Field:=1, Criteria1:=Array(Split(c02, "|")), Operator:=xlFilterValues
End Sub

Niels
 
Werkt goed, alleen bij filteren krijg ik een fout 13 "type komen niet met elkaar overeen...
Het lijkt dat de autofilter de gegevens niet kan verwerken..

waarom snap ik ook niet, gezien het alleen om nummers gaat..

Blad1
a1 = 5
a2 = 6
a3 = 7
a4 = 8
a5 = 9

Blad2
a1 = 1
a2 = 2
a3 = 3
a4 = 4
a5 = 5
a6 = 6
a7 = 7
a8 = 8
a9 = 9

Resultaat filter:
a1
a2
a3
a4


..

Met een omweg,


Geef het bereik waar de dossiers die uitgesloten moeten worden de naam dossiers
pas de rest aan aan jouw situatie.



Code:
Sub filter()

For Each cl In Range("dossiers") 
    c01 = c01 & "|" & cl.Value & "|"
Next


For Each cl In Range("l:l").SpecialCells(2) 'aanpassen aan jouw bereik
    If InStr(c01, "|" & cl.Value & "|") = 0 Then c02 = cl.Value & "|" & c02
Next

ActiveSheet.Range("$L$7:$M$22").AutoFilter Field:=1, Criteria1:=Array(Split(c02, "|")), Operator:=xlFilterValues
End Sub

Niels
 
plaats even een voorbeeldbestandje


ps je hoeft niet steeds te quoten als je meteen onder een bericht reageert dit lees nl niet prettig
 
Laatst bewerkt:
:thumb::thumb::thumb::thumb::thumb:
Eindelijk... Super bedankt Niels !
 
nog een kleine vraag.. ik zie dat deze script ook de lege cellen mee neemt, kunnen we de selectie "<>" toevoegen ?
 
Test het eens.
Code:
Sub hsv()
 Sheets("Blad2").Cells(1).CurrentRegion.AutoFilter 1, Array(Split(Join(filter(Application.Transpose([if(Blad2!A1:A1000<>blad1!A1:A1000,blad2!A1:A1000,"~")]), "~", False), "|"), "|")), xlFilterValues
End Sub
 
Laatst bewerkt:
Thanks HSV, ik heb het op een andere manier opgelost ..

All bedankt voor de hulp !:thumb:
 
Welk ander manier!
 
@Niels28

Zo kan ook:

Code:
   c01 = "|" & Join(Application.Transpose(Range("dossiers")), "|") & "|"
 
Heb je mijn code niet getest?
 
Deze heb ik ook getest, echter kreeg ik deze niet in mijn script werkend..
 
Dan had ik dat als antwoord verwacht.

In het bestandje van Niels.
 

Bijlagen

Thanks HSV,

De eerste keer werkt deze wel, echter als je de filter weer uit zet en daarna dmv de script weer laat werken, dan blijven de lege cellen toch weer staan..

En inderdaad ik was het vergeten te vermelden dat ik je script ook getest heb :D
 
Vreemd, hier werkt de code keer op keer.
In welk versie gebeurd dit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan