Thema Datum  Von Nutzer Rating
Antwort
03.05.2023 12:12:18 Daniel
NotSolved
03.05.2023 12:59:30 Gast4005
NotSolved
Rot CSV datei einlesen und als copy speichern
03.05.2023 14:26:46 Gast78666
NotSolved

Ansicht des Beitrags:
Von:
Gast78666
Datum:
03.05.2023 14:26:46
Views:
283
Rating: Antwort:
  Ja
Thema:
CSV datei einlesen und als copy speichern

Vielen lieben Dank für deine schnelle Hilfe. Ich versuche es nochmal mit den richtigen Bezeichnungen. 

Ich möchte aus einem Ordner mit über 3000 csv Dateien, jeweils eine CSV Datei in eine vorhandende Excel Datei einlesen. Die ursprüngliche Excel Datei hat über 15 Arbeitsblätter in denen Berechnungen vorgenommen werden, basierend auf den Daten der importierten CSV Datei. Die CSV Datei soll in das Arbeitsblatt 'RawData' einglesen werden. Die Daten in der CSV Datei sind getrennt mit  Semikolon Trennung.

Sobald alle Daten in das Arbeitsblatt 'RawData' import sind, soll die gesamte Excel 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. 

Ich hoffe das macht mehr Sinn. 

___

Ich habe versucht die Dir () Funktion für Mac anzupassen, bekomme aber immer noch einen Fehler. Um die Pfadangabe zu vereinfachen, habe ich die Original Datei in das Verzeichnis der CSV Dateien koppiert.

 

Option Explicit
 
Sub ImportCSVFiles()
    Dim CSVFile As Variant
    Dim wsRawData As Worksheet
    Dim MyDir As String
    Dim strPath As String
    Dim strNewFileName As String
   
    ' Set the folder path
    MyDir = ActiveWorkbook.Path
    strPath = MyDir & ":"
   
    ' Check if the folder path exists and create it if it doesn't
    If Len(Dir(strPath, MacID("TEXT"))) = 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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.05.2023 12:12:18 Daniel
NotSolved
03.05.2023 12:59:30 Gast4005
NotSolved
Rot CSV datei einlesen und als copy speichern
03.05.2023 14:26:46 Gast78666
NotSolved