Importfunktion mit VBA
20.11.2015 13:37:27
Benjamin
hatte mir vor einiger Zeit folgendes VBA für den Datenimport in Excel erstellt.
Sub DateiMehrfachAuswahl()
Dim vntPathAndFileNames As Variant
Dim lngI As Long
Dim wbkZiel As Workbook
Dim wksZiel As Worksheet, wksText As Worksheet, intFehler As Integer
On Error GoTo Fehler
Set wbkZiel = ActiveWorkbook
'Importfunktion
vntPathAndFileNames = Application.GetOpenFilename( _
fileFilter:="Text Files (*.csv), *.csv", _
Title:="Bitte wählen Sie die zu ladende Datei/en aus!", _
MultiSelect:=True)
If VarType(vntPathAndFileNames) = vbBoolean Then
MsgBox "Sie haben abgebrochen."
Else
For lngI = 1 To UBound(vntPathAndFileNames)
Workbooks.OpenText Filename:=vntPathAndFileNames(lngI), _
Origin:=xlWindows, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=True, _
Comma:=False, _
Space:=False, _
Other:=False, _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
DecimalSeparator:=".", _
ThousandsSeparator:="," 'Dezimaltrennzeichen von Punkt in Komma geändert
intFehler = 1
ActiveWorkbook.Worksheets(1).Move before:=wbkZiel.Worksheets(1)
GoTo Weiter02
Weiter01:
Set wksText = ActiveSheet
Set wksZiel = wbkZiel.Worksheets.Add(before:=wbkZiel.Worksheets(1))
wksText.UsedRange.Copy wksZiel.Cells(1, 1)
wksZiel.Name = wksText.Name
wksText.Activate
ActiveWorkbook.Close savechanges:=False
Weiter02:
Next
End If
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 1004
If intFehler = 1 Then
'Tabellen nicht kompatibel für Verschieben
intFehler = 0
Resume Weiter01
Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End If
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub
Aktuell hab ich nun das Problem, dass die Daten nicht entsprechend den Semicolon getrennt importiert wird, sondern alles in einer Spalte landet.Wo liegt der Fehler?
Danke für Eure Hilfe
Grüße
Benjamin