Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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

Makro Kopieren von Autofilterergebnis

Makro Kopieren von Autofilterergebnis
14.10.2013 11:52:35
Autofilterergebnis
Hallo Experten,
ich habe ein Problem beim Kopieren von Filterergebnissen eines Autofilters.
Zum Ablauf: Ich filtere die Spalte H (Datum wann der Datensatz angelegt wurde) per Makro mit dem Autofilter. Als erstes werden die Datensätze nach dieser Spalte absteigend sortiert und dann für eine Quartalsauswertung (von zb. 1.1.2013 bis 1.4.2013) gefiltert (Eingabe des Auswertungszeitraumes per Textbox). Anschließend wird das Filterergebnis in ein extra Worksheet kopiert. Ich habe dazu folgenden Code (auch irgendwo in den Weiten des Netzes gefunden):
Worksheets("Jahrestabelle").Range("D5").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Worksheets("Auswertung").Range("D5").PasteSpecial Paste:=xlPasteValues
Das funktioniert auch wunderbar, solange beim Filtern Daten gefunden werden. Sollte es aber für den entsprechenden Zeitraum keine Daten geben dann läuft mir das Makro in einen Laufzeitfehler 1004 -keine Zellen gefunden-.
Ist soweit ja auch logisch, wo nichts ist kann auch nichts kopiert werden, er prüft ja ob Zellen sichtbar sind. Das ist hier halt nicht der Fall.
Ich kriege das weder mit on error resume next noch mit sonst etwas geregelt. Habe mir schon den Wolf gesucht bisher aber keine Lösung gefunden.
Jetzt schon Danke für die Mühe

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Kopieren von Autofilterergebnis
14.10.2013 12:21:13
Autofilterergebnis
Hallo Werner,
ungetestet, aber das sollte klappen:
Dim rng As Range
Set rng = Worksheets("Jahrestabelle").Range("D5").CurrentRegion.SpecialCells(xlCellTypeVisible)
On Error Resume Next
If Not rng is Nothing Then
Worksheets("Jahrestabelle").Range("D5").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Worksheets("Auswertung").Range("D5").PasteSpecial Paste:=xlPasteValues
End if
On Error GoTo 0
Set rng = Nothing
Bei Special.Cells sollte immer On Error Resume Next vorangestellt werden.
Gruß
Klaus

AW: Makro Kopieren von Autofilterergebnis
14.10.2013 12:44:29
Autofilterergebnis
Hallo Werneer & Klaus,
ich habe mal ein bischen getestet und kann nicht verstehen, wie da ein Fehler auftaucht - bei mir jedenfalls nicht. Egal ob die Überschriften in Zeile 4 oder 5 stehen: 'CurrentRegion' liefert auf alle Fälle die Überschriften des Filters als kleinsten gültigen Bereich, falls kein Wert im Datumsbereich exixtiert. Deshalb ist auch 'On Error' überflüssig, das es keinen Fehler gibt.
Ich mache das so:

If WorksheetFunction.Subtotal(2, Worksheets("Jahrestabelle").Range("H5"). _
CurrentRegion) > 0 Then
Worksheets("Jahrestabelle").Range("D5").CurrentRegion.SpecialCells(xlCellTypeVisible). _
Copy
Worksheets("Auswertung").Range("D5").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If
Gruß von Luschi
aus klein-Paris
PS: getestet mit E2010
Zu beachten ist auch die 'H5'-Angabe in der Worksheetfunction.Subtotal-Funktion, da numerische Werte gezählt werden (2 = Anzahl) und Datumsangaben sind ja Zahlen.

Anzeige
AW: Makro Kopieren von Autofilterergebnis
15.10.2013 11:06:58
Autofilterergebnis
Hallo Luschi, hallo Klaus,
hab die Lösung von Luschi eingebaut und funktioniert wunderbar. Ich hab das jetzt noch mit einer msg-box erweitert die mir eine Meldung ausgibt, dass für den Auswertungszeitraum keine Daten gefunden wurden. Alles top!!!
Klaus, deine Version habe ich noch nicht ausprobiert, so wie ich mir das aber ansehe, wird die wohl auch laufen.
Dannke euch beiden für die prompte und kompetente Unterstützung.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige