ich habe eine kleine Herausforderung. Wir haben eine riesige xls. Datei welche in verschiedene Bereiche gesplittert werden muss, je nach Suchkriterium,
Wir können in unserem weiterführenden System nur das Format 97-2003 verarbeiten, Problem hier - Daten nur bis 59.999.
Momentan mache ich das noch händisch, sprich:
Suchkriterium 1:
neues wbk, erstmal alle gefilterten da rein, dann weitere Bearbeitung, danach muss die Datei die 300.000 Zeilen hat in eben mind.5 zerlegt werden und neu gespeichert werden. Mit eben Datei 1 Datei 2 Datei 3 usw. Bis alle Daten gespeichert wurden in eben jeweils neue xls. 97-2003 max 59.999 Zeilen.
Habt ihr eine Idee, wie man dies realisieren kann? Die Daten kommen mit unregelmäßiger Größe also mal sind es 100.000 Zeilen mal 300.000 Zeilen.
Ich habe hier schon in einem anderen Forum nachgefragt und einen guten Code als Ansatz erhalten, aber ich komm damit nicht so wirklich weiter.
Das ist mein Ausgangscode wie ich derzeit alle Datein speichere:
ActiveSheet.Range("$A$1:$DA$313225").AutoFilter Field:=7, Criteria1:="Alles zusammen*"
Dim wkb, wkbnew As Workbook
Set wkb = ThisWorkbook
Rows("1:1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Set wkbnew = Application.Workbooks.Add
wkbnew.Sheets(1).Paste Destination:=wkbnew.Sheets(1).Range("$A$1")
wkbnew.SaveAs ".....\alles zusammen_heute_" & Format(Now, "DD.MM.YYYY") & ".xls", FileFormat:=xlExcel8
wkbnew.Close
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
und diesen Code hat ein User mir geschickt, wenn ich diesen implementiere, schneidet es bei mir jedoch bei der Erstellung der nächsten Datei immer die erste Zeile ab und darüber hinaus speichert es keine neue Datei, sondern will die erste Datei über speichern. Ich weiß, laut User Hilfe anderem Forum dass es nur zwei kleine Details sind, jedoch bin ich hier einfach noch zu unerfahren diese herauszufinden, Kann mir hier jemand helfen?
Sub M_snb()
Sheets.Add , Sheets(Sheets.Count)
For j = 0 To Sheets(1).UsedRange.Rows.Count \ 60000 + 1
Sheets(1).Cells(j * 60000 + 1, 1).Resize(60000, Sheets(1).UsedRange.Columns.Count).Copy Sheets(2).Cells(1)
Sheets(2).Copy
With ActiveWorkbook
.SaveAs "G:\OF\first.xls", 56
.Close
End With
Next
Es soll eben zum Schluss automatisch die entsprechenden Dateien erstellt werden:
Bei 180.000Zeilen eben drei, wobei überall die Zeile eins als Überschrift vorhanden sein muss, da das die Parameter zur Weiterverarbeitung sind.
Danke euch
Isabelle