Advanced-filter loop

Status
Niet open voor verdere reacties.

Erinaceus

Nieuwe gebruiker
Lid geworden
6 mrt 2018
Berichten
3
Sinds een tijdje ben ik met behulp van YouTube bezig om een advanced filter in excel te zetten.
De gebruiker kan filteren op het onderwerp 'maand' of 'categorie' via een list-box in een user-form in de data-sheet.
Op dit moment kan de gebruiker al wel op maand EN categorie selecteren maar nog niet alleen op een van de twee omdat er ergens in het laatste gedeelte een fout in de code zit. Hiervoor wil ik excel een loop laten maken door een cellenbereik en afhankelijk van de waarde er een advanced-filter op zetten. Iemand tips?

Code:
Columns("O:O").Select
Selection.Clear

Dim i As Integer

For i = 0 To ListBoxCategorie.ListCount - 1

    If ListBoxCategorie.Selected(i) = True Then

Range("O400").End(xlUp).Offset(1, 0).Value = ListBoxCategorie.List(i)

Else
End If

Next

Columns("L:L").Select
Selection.Clear

Dim x As Integer

For x = 0 To ListBoxMaand.ListCount - 1

    If ListBoxMaand.Selected(x) = True Then

Range("L400").End(xlUp).Offset(1, 0).Value = ListBoxMaand.List(x)

Else
End If

If Range("m2:m13").Value And Range("n2:n9") <> "" Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("m2:m13")

Else
End If

If Range("m2:m13") <> "" And Range("n2:n9").Value Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("n2:n9")

Else
End If

If Range("m2:m13").Value And Range("n2:n9").Value Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("m2:n13")

Else
End If

Unload Me

End Sub
 
Bij advancedfilter op een datum moet de datum in het Amerikaans geschreven zijn in de cel (criteriarange).

"mm/dd/yyyy" i.p.v. "dd/mm/yyyy"
 
@HSV

dHet klopt idd dat de maand op z'n Amerikaans moet zijn, dus "mm/dd/yy". Dat probleem was me bekend en daarom voer ik de maand nu in als tekst (VB: 10 Februari ipv 10-02) Dat probleem is dus al getackeld.

Het probleem zit hem voornamelijk in het tweede gedeelte van de code met de Advanced-filter.
Ik laat de twee criteria (maand en categorie) nu naar twee aparte kolommen zetten. kolom 'M' voor de maand en kolom 'N' voor de categorie
Vervolgens wil ik de code het volgende laten doen:

- als alleen de maand wordt aangeklikt: controleren of kolom 'M' wel een waarde heeft en kolom 'N' geen waarde, dan een Advanced-Filter toepassen op kolom M
- als alleen de categorie wordt aangeklikt: controleren of kolom 'N' wel een waarde heeft en kolom 'M' geen waarde, dan een Advanced-Filter toepassen op kolom N
- als zowel maand als categorie worden aangeklikt, dan een Advanced-Filter toepassen op beide kolommen.

Zie ook de bijgevoegde code:

Code:
If Range("m2:m13").Value And Range("n2:n9") <> "" Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("m2:m13")

Else
End If


If Range("m2:m13") <> "" And Range("n2:n9").Value Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("n2:n9")

Else
End If
'advanced filter gebruiken voor alle twee de categorieen
If Range("m2:m13").Value And Range("n2:n9").Value Then
Range("a8:g352").AdvancedFilter xlFilterInPlace, Range("m2:n13")

Else
End If


Ik wil dus een soort van loop maken die door deze stappen heenloopt maar hij komt terug met de 'For without Next' error.
 
Ik kreeg je bestand niet open.

Waar heb je geleerd al die zinloze 'else's te zetten ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan