Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1576to1580
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Filter-Ergebnisse per VBA ausschneiden

Filter-Ergebnisse per VBA ausschneiden
06.09.2017 16:11:12
Martin
Hallo,
ich habe eine größere Tabelle, die ich per VBA filtere, was soweit auch gut klappt.
Nun möchte ich gerne das Ergebnis eines Filters, d.h. alle nach Anwendung des Filters sichtbaren Zeilen, ausschneiden und auf einem anderen Blatt einfügen.
Nach dem Filtern sollen die entsprechenden Zeilen also statt auf Blatt 1 auf Blatt 2 erscheinen, ohne dass dabei auf Blatt 1 leere Zeile entstehen.
Blatt 2 ist davor bis auf die Überschriften leer, d.h. das Einfügen kann immer ab Zeile 2 erfolgen.
Ich habe es mit folgendem Ansatz probiert, der aber nicht funktioniert.
Kann mir jemand sagen, wie ich so etwas erreichen kann ?
Hier mal eine stark vereinfachte Beispieldatei:
https://www.herber.de/bbs/user/116043.xlsm
Mein Code (vereinfacht):
    Dim varLastRow As Long
With Worksheets(1)
varLastRow = .Range("A" & Rows.Count).End(xlUp).Row
.Range("B:B").AutoFilter Field:=2, Criteria1:="DE"
.Range("B2:B" & varLastRow).SpecialCells(xlCellTypeVisible).EntireRow.Cut
Worksheets(2).Range("A2").Insert Shift:=xlDown
End With
Vielen Dank im Voraus für Eure Hilfe,
Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter-Ergebnisse per VBA ausschneiden
06.09.2017 16:39:33
KlausF
Hallo Martin,
Sub FilterIt()
Dim varLastRow As Long
Dim i As Long
Dim a As Long
a = 2
Application.ScreenUpdating = False
With Worksheets(1)
varLastRow = .Range("A" & Rows.Count).End(xlUp).Row
.Range("B:B").AutoFilter Field:=2, Criteria1:="DE"
For i = 2 To varLastRow
If .Rows(i).EntireRow.Hidden = False Then
.Rows(i).EntireRow.Cut Worksheets(2).Range("A" & a)
a = a + 1
End If
Next i
On Error Resume Next
.ShowAllData
On Error GoTo 0
Range("B2:B" & varLastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
Gruß
Klaus
Anzeige
AW: Filter-Ergebnisse per VBA ausschneiden
06.09.2017 16:43:47
Martin
Hallo Klaus,
vielen Dank für die schnelle Antwort !
Mit dem Loop klappt es super - perfekt.
Hatte schon vermutet, dass ich da nicht drum rum komme. :)
VG und einen schönen Abend,
Martin
noch eine Mini-Korrektur
06.09.2017 16:47:11
KlausF
Hallo Martin,
danke für die Rückmeldung.
Noch eine kleine Korrekur:
in der drittletzten Zeile muss ein Punkt am Anfang vor Range stehen
.Range("B2:B" & varLastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Hätte eigentlich angemeckert werden müssen ...
Gruß
Klaus
AW: noch eine Mini-Korrektur
06.09.2017 18:16:22
Martin
Danke, Klaus.
Den hab ich gleich beim ersten Testen ergänzt - alles bestens. :)
VG,
Martin
Anzeige
AW: Filter-Ergebnisse per VBA ausschneiden
06.09.2017 16:52:12
onur
Du brauchst nur nach dem Filtern das Makro die sichtbaren (Eigenschaft .Hidden=False) Zeilen zu kopieren und im anderen Blatt einzufügen und danach die Quellzeile zu löschen.
z.B.:
If Not Sheet1.Rows(z).EntireRow.Hidden Then ......

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige