Option
Explicit
Public
Function
ImportCSV()
As
Boolean
Const
C_IMPORT_WORKSHEET_NAME
As
String
=
"ImportedData"
Const
C_IMPORT_COLUMN
As
String
=
"A"
Dim
wks
As
Excel.Worksheet
Dim
rng
As
Excel.Range
Dim
vntResult
As
Variant
Dim
vntFileContent
As
Variant
Dim
QNr
As
Integer
Dim
i
As
Long
Set
wks = Worksheets(C_IMPORT_WORKSHEET_NAME)
vntResult = Application.GetOpenFilename( _
FileFilter:=
"CSV Dateien (*.csv), *.csv"
, _
Title:=
"CSV Dateien öffnen"
, _
MultiSelect:=
True
)
Call
wks.UsedRange.Clear
If
IsArray(vntResult)
Then
For
i = LBound(vntResult)
To
UBound(vntResult)
QNr = FreeFile
Open vntResult(i)
For
Input
As
#QNr
vntFileContent = Input(LOF(QNr), #QNr)
Close #QNr
Set
rng = wks.Cells(wks.Rows.Count, C_IMPORT_COLUMN).
End
(xlUp)
If
Not
IsEmpty(rng.Value)
Then
Set
rng = rng.Offset(1)
vntFileContent = Split(vntFileContent, vbNewLine)
vntFileContent = WorksheetFunction.Transpose(vntFileContent)
If
vntFileContent(1, 1) <>
""
Then
With
rng
.Value = vntResult(i)
.Offset(1).Resize(UBound(vntFileContent) - 1).Value = vntFileContent
End
With
End
If
Next
Call
wks.Columns(C_IMPORT_COLUMN).TextToColumns(Semicolon:=
True
)
End
If
End
Function