jerry0110
Erfahrenes Mitglied
Hallo zusammen,
ich möchte gerne aus einer CSV eine XLS machen.
Dafür habe ich mein Standard Script.
Es gibt maximal 2 CSV Dateien. Aber zu 99% immer nur ein.
Was es machen soll ist, dass er den gleichen Namen der CSV auch als XLS nehmen soll.
Wenn ich das Scipt aber durchlaufen lasse, dann macht er mir die Datei ohne ".xls"-Endung.
Wenn ich aber bei zFile einen festen Namen hinschreibe, dann macht er mir ein ".xls" dahinter.
Warum?
ich möchte gerne aus einer CSV eine XLS machen.
Dafür habe ich mein Standard Script.
Visual Basic:
Sub CSV()
Dim sFile As String, sPath As String, iFree As Integer
Dim arrCSV, arrTmp, arrXLS(), i As Long, j As Integer, n As Long
Dim zFile As String
Dim myDate As Date
sPath = ThisWorkbook.Path & "\Buchungen an Stammdaten\" 'anpassen
sFile = Dir(sPath & "*.csv")
zFile = sFile
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Do While Len(sFile)
iFree = FreeFile
Open sPath & sFile For Input As iFree
arrCSV = Split(Input(LOF(iFree), iFree), vbCrLf)
Close iFree
For i = 0 To UBound(arrCSV)
arrTmp = Split(arrCSV(i), ";")
n = Application.Max(n, UBound(arrTmp))
Next
For j = 0 To UBound(arrTmp)
arrXLS(i + 1, j + 1) = arrTmp(j)
Next
ReDim arrXLS(1 To UBound(arrCSV) + 1, 1 To n + 1)
For i = 0 To UBound(arrCSV)
arrTmp = Split(arrCSV(i), ";")
For j = 0 To UBound(arrTmp)
arrXLS(i + 1, j + 1) = arrTmp(j)
Next
Next
With Workbooks.Add
.Sheets(1).Cells(1, 1).Resize(UBound(arrXLS), UBound(arrXLS, 2)) = arrXLS
.SaveAs sPath & zFile, FileFormat:=xlWorkbookDefault
.Close
End With
sFile = Dir
Loop
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Es gibt maximal 2 CSV Dateien. Aber zu 99% immer nur ein.
Was es machen soll ist, dass er den gleichen Namen der CSV auch als XLS nehmen soll.
Wenn ich das Scipt aber durchlaufen lasse, dann macht er mir die Datei ohne ".xls"-Endung.
Wenn ich aber bei zFile einen festen Namen hinschreibe, dann macht er mir ein ".xls" dahinter.
Warum?