Daten aus CSV Datei importieren


Den nachfolgenden VBA Programmcode können Sie für Ihre Auswertung nutzen. Bitte beachten Sie, dass dieser Code ggf. für ihre Auswertung angepasst werden muss. D.h. Dateinamen, die Bezeichnung der Tabellenblätter etc. müssen ggf. auf Ihre Umgebung angepasst werden.

 

Eine Beispieldatei zum Download finden Sie hier.

 



Sub Import()
'
' Import Makro

Dim Pfad As String
Dim Pfad1 As String
Dim Datei As String
Dim Dateipfad As String
Dim i As Integer
Dim s As Integer
Dim z As Integer
Dim Anzahl As Integer

Dim letztezeile As Integer
' Bisherige importierte Daten werden elöscht
ThisWorkbook.Sheets("Tabelle2").Cells.Clear
ThisWorkbook.Sheets("Tabelle3").Cells.Clear
' Tabelle1 wird gewählt
ThisWorkbook.Sheets("Tabelle1").Activate

' Variablen werden mit den Eingaben aus Tabelle1 belegt
Pfad1 = Cells(1, 2).Value
Anzahl = Cells(4, 2).Value
s = Cells(6, 2).Value
z = Cells(7, 2).Value

' Schleife zum mehrmaligem Durchlaufen
For i = 1 To Anzahl
' Dateibezeichnung übernehmen
Datei = ThisWorkbook.Sheets("Tabelle1").Cells(2, 2).Value & i
' Dateipfad bestimmen
Pfad = Pfad1
Dateipfad = Pfad & Datei & ".csv"

' Ziel Tabellenblatt wählen
ThisWorkbook.Sheets("Tabelle3").Activate

Columns("A:XY").Select
Selection.Delete Shift:=xlToLeft

' Rohdatendatei öffnen
' Pfad definieren
Pfad = "TEXT;" & Dateipfad
MsgBox Pfad
' Konvertierungsassistent mit Rekorder aufgezeichnet:
        ' Werte kopieren und in bestehender Arbeitsmappe einfügen
        With ActiveSheet.QueryTables.Add(Connection:=Pfad, Destination:=Range("$A$1"))
        .Name = Datei
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(4, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=True
    End With
   
    ' Daten als Werte einfügen
    Columns("A:XY").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
   
   
    ' entsprechenden Bereich auswählen und kopieren
    ThisWorkbook.Sheets("Tabelle3").Activate
    Range(Cells(1, 1), Cells(z, s)).Select
    Selection.Copy
    ' Auswertungsdatei wählen
    ThisWorkbook.Sheets("Tabelle2").Activate
    ' letzte Zeile bestimmen und Daten unten anfügen
    letztezeile = ActiveSheet.Cells(1048576, 1).End(xlUp).Row
    Sheets("Tabelle2").Cells(letztezeile + 1, 1).Select
    ActiveSheet.Paste

   
Next i
End Sub