Per VBA *.csv – Datei importieren (DE-Format)

Fehler umgehen beim *.csv-Import per VBA

Es scheint ganz ein­fach zu sein, eine im deutschen Excel erstellte oder auch von einem anderen Pro­gramm erstellte *.csv-Datei zu öff­nen. Beim Weg über den Dateiman­ag­er ist das auch kein Prob­lem. Ein Dop­pelk­lick auf die *.csv und die Datei wird geöffnet und kor­rekt dargestellt. Soll das Ganze jedoch per Makro (VBA) geschehen, dann kann es leicht zu Prob­le­men kom­men.

Angenom­men, es gibt da ein File mit dem Namen MeineDaten.csv. Sie öff­nen den Makrorecorder und zeich­nen das öff­nen der Datei auf. Das Ergeb­nis ist wie erwartet, die Dat­en wer­den kor­rekt importiert. Der aufgeze­ich­nete Code sieht dann beispiel­sweise so aus:

Sub csv_Import()

Workbooks.Open Filename:=„C:\MeineDaten.csv

End Sub

Wenn Sie dieses Pro­gramm, diese Sub nun aufrufen, dann wird die Datei zwar geöffnet, aber alle Semi­ko­la, welche die Spal­ten tren­nen, wer­den ignori­ert. Alle Zeilen ste­hen jew­eils nur in ein­er einzi­gen Spalte.

Der Fehler ist leicht erk­lärt: Sie müssen der Pro­gram­mzeile per Hand noch ein Argu­ment, ein weit­eren Para­me­ter zufü­gen:

Workbooks.Open Filename:=„C:\CsvDatei.csv”, Local:=True

Mit dem zusät­zlichen Para­me­ter Local:=True weisen Sie Excel an, die lan­desspez­i­fis­chen, die lokalen (also deutschen) Ein­stel­lun­gen zu beacht­en. Anson­sten wird automa­tisch das „csv” wörtlich genom­men, denn das ste­ht für comma separat­ed value. Und in der US-Ver­sion ist das Kom­ma und nicht das Semi­kolon der Tren­ner in ein­er solchen Auflis­tung.

Hin­weis: Bei dieser einzi­gen (rel­e­van­ten) Code-Zeile verzichte ich auf die Möglichkeit des Imports.  🙂

[NachOben­Let­zte Verweis=„T&T: *.csv-Import ‑de- VBA”]
Dieser Beitrag wurde unter Code-Schnipsel, Daten-Import / -Export, Mit VBA/Makro abgelegt und mit , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.