AW: möglich z.B. mittels PowerQuery ...
30.04.2020 16:54:12
Maria
Hallo Werner,
und möchtest du es in einem Tabellenblatt oder mehreren?
Hier mal was für "Pro Datei ein Reiter" was man aber einfach auf die "letzte Zeile" als Einfügepunkt ändern können müsste.
(Kommt auch teilweise auf einer Aufzeichnung, daher nicht sehr schön, aber funktioniert :))
Schöne Grüße
Maria
Sub test()
Dim intFiles As Integer
Dim varFiles As Variant
On Error GoTo Fin
varFiles = Application.GetOpenFilename( _
FileFilter:="Excel-Dateien (*.csv), *.csv", _
MultiSelect:=True)
If Not VarType(varFiles) = vbBoolean Then
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
For intFiles = 1 To UBound(varFiles)
' Workbooks.Open varFiles(intFiles), UpdateLinks:=False
Workbooks.Add
'MsgBox varFiles(intFiles)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" + varFiles(intFiles), Destination:=Range("$A$1"))
' .CommandType = 0
.Name = varFiles(intFiles)
.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 = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWorkbook.Connections(1).Delete
'kappt die Verbindung zu den Ursprungsfiles --> beschleunigt
Next intFiles
Else
MsgBox "Abbruch!", vbInformation, "Dateiauswahl!"
End If