10.05.2017, 09:45 (Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2017, 09:45 von felix1.)
Hallo,
mein Problem ist sicherlich recht einfach zu lösen, aber als Makro-Einsteiger quäle ich mich schon eine ganze Weile ohne Ergebnis daran rum:
im Ordner "C:\Users\Desktop\Dateien" liegen ca. 3.500 Excel-Dateien. Für jeden Tag eine Datei mit folgender Namensgebung: "auction_YYYYMMDD". Diese Dateien enthalten jeweils nur ein Sheet namens "Ergebnisse", das ca. 10.000 Zeilen umfasst (habe einen Screenshot zur Verdeutlichung angehängt
).
Nun würde ich gerne in einer neuen Datei alle Zeilen aus den täglichen Dateien zusammenfassen, in denen in Spalte E eine "0" steht. In obigem Beispiel also Zeile 2 und 8.
Dafür sollten alle "auction_YYYYMMDD"-Dateien vom 01.01.2008 (also "auction_20080101.xls") bis zum 09.05.2017("auction_20170509") ausgelesen werden.
Vielen Dank schonmal für eure Unterstützung, die mir wirklich sehr helfen würde! Felix
super Tipp, Power Query kannte ich tatsächlich noch nicht und das macht genau was ich brauche.
Trotzdem bin ich dabei nun auf ein neues Problem gestoßen: in meinen Ursprungsdateien steht in Zeile 1 über der eigentlichen Überschrift noch eine Art Signatur. Wenn ich diese manuell aus der Datei lösche, funktioniert der Query einwandfrei. So lange die Signatur noch enthalten ist, die eigentlichen Überschriften Zeile 2 stehen und die Werte erst ab Zeile 3 beginnen, gibt der Query für alle Werte "error" (DataFormat.Error: Die Eingabe wurde nicht als gültiges Excel-Dokument erkannt) aus.
Daher: -gibt es einen einfachen Weg in einer Vielzahl von Dateien Zeile 1 zu löschen? oder -kann ich das Query so gestalten, dass es damit umgehen kann? im Query-Abfrage-Editor "erste Zeile löschen" und dann "erste Zeile als Überschrift" setzen führt leider nicht zum Ziel sondern gibt weiterhin "error" aus.
10.05.2017, 13:21 (Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2017, 13:21 von Der Steuerfuzzi.)
Lade doch mal eine Beispieldatei hoch. Sollte eigentlich kein Problem sein, PowerQuery zu sagen, dass er erst in Zeile x anfängt bzw. fehlerhafte Einträge zu filtern.
Ich habe es mal versucht nachzubauen. Wenn ich die Daten aus den Dateien eingelesen habe, dann habe ich zuerst die erste Zeile entfernt durch "Zeilen verringern" -> "Zeilen entfernen" -> "Erste Zeilen entfernen".
Danach habe ich im Reiter "Transformieren" den Punkt "Erste Zeile als Überschriften verwenden" gewählt. Im nächsten Schritt habe ich dann für die erste Spalte das Format auf Datum und für die zweite Spalte auf Ganzzahl umgestellt. Daraufhin kommt natürlich für die Zeilen in denen die Überschrift/das Datum steht, ein Fehler. Diese Zeilen bekommt man weg, indem man "Zeilen verringern" -> "Zeilen entfernen" -> "Fehler entfernen" ausführt.
Sub fen() Dim WS As Workbook iPath = "z:\user\" '<<<<<<<<<<<<<<<<<<<< anpassen ifile = Dir(iPath & "auction*.xlsx") Do While Len(ifile) Set WS = Workbooks.Open(iPath & ifile) lr = ThisWorkbook.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 With WS.Sheets(1) .Range("A1:B1").Clear With .Cells(2, 1).CurrentRegion .AutoFilter 5, 0 .Offset(1).Copy ThisWorkbook.Sheets(1).Cells(lr, "A") End With End With WS.Close 0 ifile = Dir Loop End Sub
Die Laufzeit dürfte"endlos" sein, deswegen sollte es zuerst an 2-3 Dateien getestet werden.
mfg
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • felix1
Michael, ich habe die Dateien jetzt auch nochmal nachgebaut und bin nach deiner Beschreibung vorgegangen. Dann funktioniert es wunderbar. Mit den Originaldateien allerdings weiterhin nicht (erst sobald ich den Inhalt aus A1:B1 lösche). Vermutlich ist das ein Problem mit dem Format.
Fennek, das Makro habe ich bis jetzt leider nicht zum Laufen gebracht, aber ich werde es weiter versuchen, weil das der einzige Weg zu sein scheint die Daten für Power Query handhabbar zu machen.