• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Meerdere filters plaatsen

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.520
Ik gebruik onderstaande code om uit kolom 8 alle nullen te filteren.
Hoe pas ik de code aan om ook de getallen 1, 5,6 en 10 eruit te filteren?

Code:
Sub Macro2()
Sheet7.Range("A3").AutoFilter 8, "<>", xlAnd, "<>0"
End Sub
 
Code:
Sub Macro2()
Sheet7.Range("A3").AutoFilter Field:=8, Criteria1:=Array("0", "1", "5", "6", "10")
End Sub
 
Code:
Sub Macro2()
Sheet7.Range("A3").AutoFilter Field:=8, Criteria1:=Array("0", "1", "5", "6", "10")
End Sub

Dat gaat niet goed want nu verdwijnen alle regels.
voor de duidelijkheid. die getallen moeten eruit gefilterd worden.
 
Laatst bewerkt:
Probeer deze:
Code:
Sub tsh()
    Dim Br
    Dim i As Long
    Dim sStr As String
    
    With Sheet7
        Br = .Columns(8).SpecialCells(2)
        sStr = "|"
        For i = 2 To UBound(Br)
            If InStr(sStr, "|" & Br(i, 1) & "|") = 0 And _
                IsError(Application.Match(Br(i, 1), Array(0, 1, 5, 6, 10), 0)) Then sStr = sStr & Br(i, 1) & "|"
        Next
        .Range("A3").AutoFilter Field:=8, Criteria1:=Split(Mid(sStr, 2), "|"), Operator:=xlFilterValues
    End With
End Sub
 
Foutmelding op onderstaande regel.
 

Bijlagen

  • excel.png
    excel.png
    14,8 KB · Weergaven: 53
Ik krijg die foutmelding in mijn in de gauwigheid in elkaar gedraaid oefenbestandje niet.
Plaats graag een voorbeeldbestand.
 
Oke, ff een bestandje (afgeleide) in elkaar gedraaid maar krijg nu een foutmelding op een andere regel.
 

Bijlagen

Deze moet je wel aanpassen hé

With Sheet7 ---> With Sheet1
 
In het origineel staat die ook netjes op Sheet7

origineel kan ik hier niet plaatsen ivm de grootte en beveiliging.
 
In je voorbeeldbestand bestaat Sheet7 niet. De foutmelding die je daar krijgt kun je oplossen volgens recept van Cobbe.
Daarmee is de foutmelding uit post #5 nog niet opgelost. Ik begrijp niet waar dat aan ligt.
Kijk in de VBA-editor -> Extra -> Verwijzingen eens of er iets ontbreekt.
 
Zijn het wel echte getallen in kolom 8 ?
 
Kolom 8 staat wel een som in van F + G (=+F7-G7)
 
O wacht :shocked:
Code:
Sub tsh()
    Dim Br
    Dim i As Long
    Dim sStr As String
    
    With Sheet7
        Br = .Columns(8).SpecialCells([COLOR="#FF0000"]-4123[/COLOR])
        sStr = "|"
        For i = 1 To UBound(Br)
            If InStr(sStr, "|" & Br(i, 1) & "|") = 0 And _
                IsError(Application.Match(Br(i, 1), Array(0, 1, 5, 6, 10), 0)) Then sStr = sStr & Br(i, 1) & "|"
        Next
        .Range("A3").AutoFilter Field:=8, Criteria1:=Split(Mid(sStr, 2), "|"), Operator:=xlFilterValues
    End With
End Sub
 
Nee hoor, ik blijf maar foutmeldingen krijgen:o
 
Gebruik je misschien samengestelde cellen?
 
Nee hoor, ik blijf maar foutmeldingen krijgen

Met deze vaststelling kunnen we niet zoveel.
Welke foutmeldingen krijg je?
Kun je een voorbeeldbestand maken waarin de fouten zich voordoen?
 
Nog maar eens een bestandje met 2 macro`s toegevoegd die beide op een andere regel stuk lopen.
 

Bijlagen

de 2 macro's lopen zonder fout door het bestand, als je tenminste Sheet7 wijzigt in Blad1
 

Bijlagen

Vergeet die hele Sheet7. Gebruik onderstaande code en zorg dat het juiste werkblad actief staat:
Code:
Sub tsh()
    Dim Br
    Dim i As Long
    Dim sStr As String
    
    Br = Filter([transpose(if(H1:H10000="","~",H1:H10000))], "~", False)
    sStr = "|"
    For i = 2 To UBound(Br)
        If InStr(sStr, "|" & Br(i) & "|") = 0 And _
            IsError(Application.Match(Val(Br(i)), Array(0, 1, 5, 6, 10), 0)) Then sStr = sStr & Br(i) & "|"
    Next
    Range("A3").AutoFilter Field:=8, Criteria1:=Split(Mid(sStr, 2), "|"), Operator:=xlFilterValues
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan