Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1720to1724
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

Erst filtern dann kopieren

Erst filtern dann kopieren
12.11.2019 17:00:30
Laui
Hallo liebe Excel-Experten,
ich habe ein Makro geschrieben welches Daten aus einem Reiter in einen anderen kopiert.
Jetzt möchte ich aber, dass vorher die Daten in Tabelle 1 gefiltert werden und die Daten anschließend übertragen werden.
Zusammengefasst:
- erst Reiter 1 Spalte E danach filtern ob Zelle mit irgendeinem Wert belegt ist (darf nur nicht leer sein)
- anschließend übertragung von Spalte A,B,C,D,H in Reiter 2
die Übertragung der Spalten habe ich wiefolgt gelöst:
lr = Sheets(1)Cells(Rows.Count, "I").End(xlUp).Row
Sheets(1).Range("I3:I" & lr).Copy Sheets (2).Cells (5, "H")
das funktioniert auch, mir fehlt nur die Filterung der ersten Tabelle...
wäre lieb wenn mir da jemand weiterhelfen könnte :)
Liebe Grüße
Laura

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA : Nur sichtbare Autofilterergebnisse kopieren
12.11.2019 17:27:38
NoNet
Hallo Laura,
wenn ich die Aufgabenstellung richtig verstanden habe, sollte dieser Code passen :
Sub FilterErgebnisKopieren()
Dim lngLZ As Long
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Set wsQuelle = Worksheets("Quelle")
Set wsZiel = Worksheets("Ziel")
With wsQuelle
lngLZ = Cells(Rows.Count, 5).End(xlUp).Row 'Letzte Zeile Spalte E ermitteln
If Application.CountIf(Range("$E$3:E" & lngLZ), "") > 0 Then
.Range("A2").AutoFilter
.Range("$A$2:$H$" & lngLZ).AutoFilter Field:=5, Criteria1:="" 'Autofilter Spalte  _
5
If .Cells(Rows.Count, 5).End(xlUp).Row > 1 Then
.Range("$A$3:$D$" & lngLZ).SpecialCells(xlCellTypeVisible).Copy _
wsZiel.Range("A5")
.Range("$H$3:$H$" & lngLZ).SpecialCells(xlCellTypeVisible).Copy _
wsZiel.Range("H5")
End If
.Range("A2").AutoFilter Field:=5 'Filter Spalte E löschen
.AutoFilterMode = False 'Autofilter deaktivieren
End If
End With
End Sub

Aus dem Blatt "Quelle" wird in Spalte E nach Werten <>"" gefiltert, und die gefilterten Werte (Spaten A:D und H) in das Blatt "Ziel" (Ab Zeile 5) kopiert.
Salut, NoNet

Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum

Exceltreffen 12.-14.06.2020 in Freiberg/Sachsen

http://www.exceltreffen.de/index.php?page=291


Anmeldungen sind noch bis 31.03.2020 möglich ! - Schau doch mal rein !

Anzeige
AW: VBA : Nur sichtbare Autofilterergebnisse kopieren
12.11.2019 19:42:21
Luschi
Hallo NoNet,
den Filterbereich ermittle ich so:

Dim rngNurDaten As Range
With wsQuelle.AutoFilter.Range
Set rngNurDaten = .Offset(1, 0).Resize(.Rows.Count - 1, _
.Columns.Count).SpecialCells(xlCellTypeVisible)
End With
Debug.Print rngNurDaten.Address
Leider gibt es auch in Excel 2019 immer noch keine DataBodyRange-Methode für AutoFilter.
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige