Hallo,
Ich möchte aus einem Ordner mit über 3000 csv Dateien, jeweils eine CSV Datei in eine vorhandende Excel Datei einlesen und diese dann als normal xlxs Datei speichern. Die ursprüngliche Excel Datei hat über 15 Arbeitsmappen. Die CSV Datei soll in die Arbeitsmappe 'RawData' einglesen werden (Semikolon Trennung). Wenn die Daten eingelesen sind, soll die Datei gespeichert werden, der Name der neuen Datei ist in Zelle RawData A284 und RawData J284. Nach erfolgreich erstellter Excel Datei soll die CSV Datei aus dem Ornder gelöscht werden. Hier der Code:
Option Explicit
Sub ImportCSVFiles()
Dim CSVFile As Variant
Dim wsRawData As Worksheet
Dim strPath As String
Dim strNewFileName As String
' Set the folder path
strPath = Application.PathSeparator & "Users" & Application.PathSeparator & "NAME" & Application.PathSeparator & "MM" & Application.PathSeparator
' Check if the folder path exists and create it if it doesn't
If Len(Dir(strPath, vbDirectory)) = 0 Then
MkDir strPath
End If
' Loop through all CSV files in the folder
CSVFile = Dir(strPath & "*.csv")
Do While Len(CSVFile) > 0
' Set the RawData worksheet
Set wsRawData = ThisWorkbook.Worksheets("RawData")
' Clear the RawData worksheet
wsRawData.Cells.ClearContents
' Import the CSV file into the RawData worksheet
On Error Resume Next
With wsRawData.QueryTables.Add(Connection:="TEXT;" & strPath & CSVFile, Destination:=wsRawData.Cells(1, 1))
If Err.Number <> 0 Then
MsgBox "Error importing CSV file: " & Err.Description, vbCritical, "Import Error"
Exit Sub
End If
.TextFileParseType = xlDelimited
.TextFileSemicolonDelimiter = True
.Refresh
End With
On Error GoTo 0
' Save the imported data as a new Excel file (.xlsx)
strNewFileName = Replace(wsRawData.Range("C284").Value & "_" & wsRawData.Range("J284").Value, ":", "") & ".xlsx"
ThisWorkbook.SaveCopyAs FileName:=strPath & strNewFileName
' Delete the used CSV file
Kill strPath & CSVFile
' Move on to the next CSV file
CSVFile = Dir
Loop
End Sub
Leider funktioniert dieser nicht. Die Daten werden nicht eingelesen. Die Datei wird gespeichert als _.xlxs und die CSV Datei gelöscht, aber die Daten werden nicht in RawData importiert. Ich arbeite mit Mac und Excel 16.72. Ich bin über jede Hilfe sehr dankbar!
|