Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1188to1192
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

VBA: Die ersten 20 gefilterten Einträge kopieren

VBA: Die ersten 20 gefilterten Einträge kopieren
Manfred
Hallo Excelfreunde,
ich stehe mal wieder vor einem Problem, was ich scheinbar mit der Recherche und meinem Wissen nicht lösen kann.
Kann mir vielleicht jemand die Befehlszeile nennen, mit der ich von einem zuvor gefiltertem Bereich nur die ersten 20 Einträge von Spalte A bis E markieren und kopieren kann?
Gruß Manfred
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
Anzeige
AW: VBA: Die ersten X gefilterten Einträge kopieren
09.12.2010 20:47:08
Gerd
Hallo Manfred!
Sub bb()
Dim lngZ As Long, lngVisCount As Long
With Tabelle1
For lngZ = .AutoFilter.Range.Row + 1 To .AutoFilter.Range.Rows.Count - AutoFilter.Range.Row + 1
lngVisCount = lngVisCount + .Rows(lngZ).Hidden + 1
If lngVisCount = 20 Then Exit For
Next
If lngVisCount > 0 Then .Range(.Cells(.AutoFilter.Range.Row + 1, 1), .Cells(lngZ, 5)).Copy  _
Destination:=Tabelle2.Cells(2, 1)
End With
End Sub
Gruß Gerd
AW: VBA: Die ersten X gefilterten Einträge kopieren
10.12.2010 08:08:07
Manfred
Hallo Gerd,
bei Deinem Quelltext erkenne ich, das einige Daten schon im VBA Editor angezeigt werden, nur bekomme ich folgende Fehlermeldung:
Laufzeitfehler 424
Objekt erforderlich
Kannst Du mir da vielleicht noch weiter helfen?
Gruß Manfred
Anzeige
AW: VBA: Die ersten X gefilterten Einträge kopieren
11.12.2010 09:32:19
Gerd
For lngZ = .AutoFilter.Range.Row + 1 To .AutoFilter.Range.Rows.Count - .AutoFilter.Range.Row + 1
Hallo Manfred,
ein Punkt fehlte.
Gruß Gerd
Einfach genial, Danke Gerd
13.12.2010 08:00:54
Manfred
Hallo Gerd,
vielen Dank, genau diese Lösung habe ich gesucht.
Frohe Weihnachten
Gruß manschmi
AW: VBA: Die ersten X gefilterten Einträge kopieren
10.12.2010 08:06:00
Manfred
Hallo NoNet,
bei meinen ersten Versuchen mit Deinem Quelltext werden mir leider nur die ersten 2 Einträge übertragen. Ich nehme an, weil "lngAnzahl = 10" ist. Da ich ja aber nicht von vorn herein die Anzahl auf 1000 oder mehr setzen will, weiß ich nicht, ob es da nicht eine andere möglichkeit gibt.
Vielen Dank trotzdem schon mal.
Gruß Manfred
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige