Microsoft Excel

Herbers Excel/VBA-Archiv

CSV Import mittel VBA scheitert am Komma

Betrifft: CSV Import mittel VBA scheitert am Komma von: Christian Steffen
Geschrieben am: 22.10.2014 20:28:03

Hallo zusammen,

bisher habe ich zu fast jedem Problem immer zügig Antworten hier gefunden, heute suche ich allerdings schon eine Weile und bin ratlos:

Ich habe eine CSV Datei, die ich mittels VBA importieren möchte.
Diese Datei hat als Trennzeichen das Semikolon.
In einigen Spalten stehen Beträge in der Form "110,00 €".

Wenn ich die Datei nun importiere, wird das Trennzeichen korrekt erkannt und auf den ersten Blick auch alles korrekt geladen.
Tatsächlich werden jedoch alle Zeichen, die hinter dem ersten Komma stehen, nicht eingelesen, als würde das Komme als Zeilenende interpretiert werden.

Folgende Einstellungen verwende ich derzeit:

For Each f In fso.GetFolder(CSVPFAD).Files
If LCase(Right(f.Name, 3)) = "csv" Then
Workbooks.OpenText Filename:=f.Path
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets(f.Name)
If Err <> 0 Then
Set ws = wbTarget.Worksheets.Add
ws.Name = f.Name
ws.Range("A:ZZ").Clear
End If

wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True ', Local:=True
wbSource.Worksheets(1).Range("A:ZZ").Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next

Ich habe versucht, die Eigenschaft Local:=true hinzuzufügen.
Das führte dazu, dass die Leerzeichen als Trennzeichen erkannt werden (statt der Semikolons), was mir auch nicht hilft.
Die Einstellungen im Excel stehen auf Dezimaltrenner = Komma, Tausendertrenner = Punkt.
Diese Einstellungen so einzustellen, dass sich Excel dem Systemstandard bedient, helfen mir leider auch nicht.

Ich verwende Excel 2010.

Ich bin über jeden Ratschlag sehr dankbar!

Viele Grüße,

Christian

  

Betrifft: AW: CSV Import mittel VBA scheitert am Komma von: Daniel
Geschrieben am: 22.10.2014 20:37:45

Hi
Probiere es mal mit Workbooks.Open (nicht OpenText) und dann mit dem Zusatz Local:=True
Gruß Daniel


  

Betrifft: AW: CSV Import mittel VBA scheitert am Komma von: Christian Steffen
Geschrieben am: 22.10.2014 20:55:42

Hallo Daniel,

das hatte ich auch schon probiert und es verhält sich genau so leider.

Wenn ich in der CSV alle Komma durch Punkte ersetze, dann läuft der Import.
Aber die Orginalfiles haben nun mal das Komma drin... :(

Danke dir dennoch!
Christian


  

Betrifft: AW: CSV Import mittel VBA scheitert am Komma von: Christian Steffen
Geschrieben am: 22.10.2014 21:01:49

Kommando zurück, es läuft nun!

Ich hatte die Option Local:=True an die falsche Stelle gehängt.

Danke!!

So läuft es nun:

For Each f In fso.GetFolder(CSVPFAD).Files
If LCase(Right(f.Name, 3)) = "csv" Then
Workbooks.OpenText Filename:=f.Path, Local:=True
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets(f.Name)
If Err <> 0 Then
Set ws = wbTarget.Worksheets.Add
ws.Name = f.Name
ws.Range("A:ZZ").Clear
End If

wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True ', Local:=True
wbSource.Worksheets(1).Range("A:ZZ").Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next


  

Betrifft: AW: CSV Import mittel VBA scheitert am Komma von: Daniel
Geschrieben am: 22.10.2014 22:01:18

Hi
Das mit dem TextToColumns solle Excel beim öffnen automatisch ausführen.
Außerdem öffne ich CSV-Dateien normalerweise mit .open und nicht .opentext.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "CSV Import mittel VBA scheitert am Komma"