Hallo zusammen,
ich versuche mehrere CSV Dateien nach Excel zu importieren. Dazu habe ich ein Makro aufgzeichnet und nach einem Beispiel von der Webside "https://www.herber.de/forum/archiv/1516to1520/1519876_Mehrere_Dateien_automatisch_importieren.html" aufgebaut. Im Ergebnis sieht der Code wie folgt aus:
Sub Import()
'
' Import Makro
Dim Pfad, Datei
Dim QueryTab As QueryTable, varSource
Dim wks As Worksheet
Pfad = "U:\Desktop\Pfad\zur\Datei\"
MsgBox "Pfad:" & Pfad
Dim ZelleZiel As Range
Datei = Dir(Pfad & "Auswertung_*.txt")
Set wks = ActiveSheet
Set ZelleZiel = wks.Range("A1") '1. Einfügezelle
Do Until Datei = ""
MsgBox "Datei:" & Datei
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Pfad & Datei, Destination:=ZelleZiel)
.Name = Left(Datei, Len(Datei) - 4)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'Verbindung der Text-Abfrage wieder löschen
' varSource = Mid(varSource, 6)
' varSource = Left(varSource, Len(varSource) - 4)
' varSource = Mid(varSource, InStrRev(varSource, "\") + 1)
' ThisWorkbook.Connections(varSource).Delete
'Nächste Zielzelle
With wks
Set ZelleZiel = .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1)
End With
Datei = Dir
Loop
End Sub
An für sich funktioniert das Ganze auch. Zunächst kommt der Inhalt aus der ersten Datei, dann kommt für ca. 500000 Zeilen nur Leerzeilen. Danach kommen die anderen importierten Daten und zwar aller Dateien schön hintereinander ohne Leerzeilen.
Ich bin lieder noch kein VBA Experte und daher suche hier mal um Rat.
|