ich habe ein Tool gebaut, welches CSV Dateien einliest, und als neues (zusammengefügtes) CSV unter einem anderen Namen speichert.
Leider habe ich erst jetzt erfahren, dass manche CSV zu groß sind, um sie vollständig zu importieren.
In meinem Tool importiere ich jedes CSV einzeln in ein bestimmtes Worksheet, erzeuge das neue CSV bzw hänge die importierten Daten an das bestehende CSV an, bevor ich das nächste CSV importiere. Leider haben manche CSV nach dem Import 1048576 Zeilen in Excel - ich habe aber keine Ahnung, wieviele Zeilen nicht importiert wurden.
Der Import läuft momentan über folgendes Macro:
Sub ImportCSV(FileName, ws As Worksheet)
If FileName False Then
Application.ScreenUpdating = False
ws.Cells.Clear
ws.Columns("A:AZ").NumberFormat = "@"
Workbooks.OpenText FileName:=FileName, Local:=True
ActiveSheet.UsedRange.Copy ws.Cells(1)
ActiveWorkbook.Close SaveChanges:=False
End If
End Sub
Das Neue CSV wird so erzeugt:
Function CreateCSV(strPath As String, strDateiname As String) As Boolean
Dim i As Long, lngZeile As Long, lngSpalte As Long, j As Long
Dim strZeile As String
Dim f As Integer
lngZeile = tbl_CSV.Cells(tbl_CSV.Rows.Count, 1).End(xlUp).Row
lngSpalte = tbl_CSV.Cells(1, Columns.Count).End(xlToLeft).Column
f = FreeFile
Open strPath & strDateiname For Output As #f
For i = 1 To lngZeile
For j = 1 To lngSpalte
If j Empty Then
CreateCSV = True
End If
strZeile = ""
Next i
Close #1
End Function
Daten werden an das CSV so angehängt:
Function AppendCSV(strPath As String, strDateiname As String) As Boolean
Dim i As Long, lngZeile As Long, lngSpalte As Long, j As Long
Dim strZeile As String
Dim f As Integer
lngZeile = tbl_CSV.Cells(tbl_CSV.Rows.Count, 1).End(xlUp).Row
lngSpalte = tbl_CSV.Cells(1, Columns.Count).End(xlToLeft).Column
f = FreeFile
Open strPath & strDateiname For Append As #f
For i = 2 To lngZeile
For j = 1 To lngSpalte
If j Empty Then
AppendCSV = True
End If
strZeile = ""
Next i
Close #1
End Function
Wie könnte ich die restlichen Datensätze erkennen und importieren? Danke und Gruß
Theo