PDA

Vollständige Version anzeigen : VBA Excel Advanced Filter


vladi89
01.07.2014, 14:07
Hallo Leute, ich habe mal wieder ein kleines Problem. Ich habe eine Liste von Städten, diese Städte möchte ich gefiltert bekommen. Ich will das doppelte Werte nur einmal angezeigt bekommen. Hab das ganze mit Advanced Filter gemacht, funktioniert eigentlich super, jedoch bekomme ich nach dem ersten Wert eine Leerzeile und danach geht es erst weiter. Hab mal eine stark abgespeckte Version hochgeladen. Ich hoffe ihr könnt mir auf die Sprünge helfen :)

Für die, die die Daten nicht runterladen wollen, hab ich auch den Code:


Private Sub DatenAuswerten_Click()

Dim lastrow As Integer
With Worksheets(1)
lastrow = .Cells(Rows.Count, 6).End(xlUp).Row
.Range("G2:G11").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets(1).Range("A13"), Unique:=True

End With
End Sub

EarlFred
01.07.2014, 14:18
Hallo End Sub,

rar-Dateien kann ich nicht entpacken. Muss die Datei denn so groß sein, dass Du sie komprimieren musst? Ein paar Datensätze, mehr braucht man doch nicht.

eine stark abgespeckte Version
das klingt nach vielen Daten und spätestens dann ist Integer der falsche Datentyp für Zeilenzahl. Ich würde bei Zeilen immer Long nehmen.
Dim lastrow As Integer

lastrow ermittelst Du über Spalte 6 (F), filtern willst Du Spalte G, nutzt hierfür aber einen festen Datenbereich.

Eine Leerzeile erhalte ich bei meinen eigenen Musterdaten nicht, die enthalten aber auch keine Leerzeilen. Ist das vielleicht bei Dir der Fall?
Du kannst die Ausgabe ja auch anschließend sortieren:
.Range("A13:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Sort Key1:=.Range("A13"), Order1:=xlAscending, Header:=xlYes


Grüße
EarlFred

vladi89
01.07.2014, 14:24
Die Datei hat ungepackt 350 kb und ist damit zu groß. Lastrow ist noch von meiner eigentlichen Lösung und gehört hier nicht rein, hab es vergessen zu löschen. Ja bei mir sind Leerzeilen in der Spalte, die gefilter werden soll, das liegt sicher daran dass ich eine Leerzeile angezeigt bekomme. Wie kann ich es denn filtern ohne das Leerzeilen angezeigt werden?

vladi89
01.07.2014, 14:26
Die Datei hat ungepackt 350 kb und ist damit zu groß. Hab schon alles mögliche gekürzt und nur die eine Spalte nach der gefiltert werden soll drin gelassen, ist trotzdem noch zu groß. Lastrow ist noch von meiner eigentlichen Lösung und gehört hier nicht rein, hab es vergessen zu löschen. Ja bei mir sind Leerzeilen in der Spalte, die gefiltert werden soll, das liegt sicher daran dass ich eine Leerzeile angezeigt bekomme. Wie kann ich es denn filtern ohne das Leerzeilen angezeigt werden?

Mc Santa
01.07.2014, 14:28
Hallo,

Kannst du deine Datei vielleicht als .zip verpacken?

VG

vladi89
01.07.2014, 14:31
Hab es nun gezippt. Ich will das ganze nicht sortieren, da ich die Reihenfolge, in der die Werte nach dem Filtern stehen, beibehalten will.

EarlFred
01.07.2014, 14:33
geändert nach Vorlage Musterdaten. Siehe Post 9

vladi89
01.07.2014, 14:36
Hab es die ganze Zeit mit CriteriaRange probiert jedoch immer irgendwelche Fehler bekommen, weil ich nicht wusste wo ich das Kriterium eintragen soll. Vielen Dank.

EarlFred
01.07.2014, 14:38
Hallo End Sub,

With Worksheets(1)
.Range("A:A").ClearContents
.Range("A4") = "Ort"
.Range("A5") = "*"
.Range("G2:G11").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("A13"), Unique:=True, Criteriarange:=.Range("A4:A5")
End With
Der Bereich A4:A5 als Kriterienbereich ist beliebig gewählt.

Grüße
EarlFred

vladi89
01.07.2014, 14:48
Ja jetzt funktioniert es wie es soll, Vielen Dank.