VBA: Die ersten X gefilterten Einträge kopieren
09.12.2010 15:52:20
NoNet
Hallo Manfred,
die Lösung ist nicht ganz so einfach, da VBA keine Objekte/Methoden für diese Zellen bereitstellt.
Daher sehe ich nur eine "manuelle" Überprüfung über alle sichtbaren Zellen der Autofilter-Liste.
Eine funktionierende Lösung könnte so aussehen (die ersten 10 sichtbaren Zeilen werden in ein neues Blatt kopiert) :
Sub FilterBereichKopieren()
'Makro kopiert die ersten X angezeigten Zeilen in einer gefilterten Liste
'09.12.2010, NoNet - www.excelei.de
Dim lngLZ As Long, lngAnzahl As Long
Dim rngF As Range, rngZ As Range
lngAnzahl = 10 'nur die ersten 10 gefilterten Werte (inkl.Überschrift) kopieren
Set rngF = Intersect(ActiveSheet.AutoFilter.Range, Columns("A:A")).SpecialCells( _
xlCellTypeVisible)
For Each rngZ In rngF
lngLZ = lngLZ + 1
If lngLZ > lngAnzahl Then 'Schleife nur bis zur angegebenen Anzahl
lngLZ = rngZ.Row
Exit For 'sehr unelegant, in einer FOR...EACH-Schleife jedoch nicht anders lö _
sbar !
End If
Next
'Spalten A:E kopieren :
Intersect(ActiveSheet.AutoFilter.Range.Resize(lngLZ - ActiveSheet.AutoFilter.Range.Row + 1), _
Columns("A:E")).Copy
'Neues Blatt einfügen und dort die kopierten Daten der gefilterten Liste einfügen :
Sheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Gruß, NoNet