Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: CSV Import mit OpenText

CSV Import mit OpenText
18.08.2021 15:04:28
Dewma
Hallo zusammen,
bisher habe ich .CSV-Dateien immer mit "Open ... For Input As #1" geöffnet. Weil dies jedoch bei großen Dateien langsammer war, möchte ich nun die Workbooks.OpenText Methode nutzen. Ich habe bereits gelesen, dass dabei als standard das Komma als Trennzeichen gesetzt ist. Nun habe ich jedoch eine .CSV-Datei mit Semikolon als Trennzeichen und probiere dies mit folgendem Code:

Workbooks.OpenText Filename:=vPath, Origin:=xlWindows, StartRow:=1 _
, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True _
, FieldInfo:=Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat), _
Array(3, xlGeneralFormat))
Mein Problem: Obwohl ich Semicolon:= True gesetzt habe, trennt Excel die Datei anhand des Kommas. Warum das Einlesen trotz des Übergabeparameters nicht funktioniert weiß ich nicht. Application.International(xlListSeparator) zeigt mir, dass das Semikolon als Standard eingestellt ist.
Was mache ich falsch? :(
Beste Grüße
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Import mit OpenText
18.08.2021 15:25:09
Nepumuk
Hallo,
versuch es so:

Workbooks.OpenText Filename:=vPath, Origin:=xlWindows, StartRow:=1 _
, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True _
, FieldInfo:=Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat), _
Array(3, xlGeneralFormat)), Local:= True
Gruß
Nepumuk
Anzeige
AW: CSV Import mit OpenText
18.08.2021 15:57:19
Dewma
Mit Local:= True hat es einwandfrei funktioniert. Aus der offiziellen Dokumentation kann man leider echt nicht rauslesen, dass man den Delimiter nur bei .txt-Dateien einstellen kann.
Vielen Dank Euch beiden!
Beste Grüße,
Dewma
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

CSV Import mit OpenText in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine CSV-Datei mit Semikolon als Trennzeichen in Excel VBA zu importieren, kannst du die Workbooks.OpenText Methode nutzen. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor in Excel (ALT + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").

  3. Kopiere und füge den folgenden Code ein:

    Sub ImportCSV()
       Dim vPath As String
       vPath = "C:\Dein\Pfad\zu\deiner\datei.csv" ' Passe den Pfad zur Datei an
    
       Workbooks.OpenText Filename:=vPath, Origin:=xlWindows, StartRow:=1, _
       DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Semicolon:=True, _
       FieldInfo:=Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat), Array(3, xlGeneralFormat)), _
       Local:=True
    End Sub
  4. Passe den Dateipfad (vPath) an deine CSV-Datei an.

  5. Führe das Makro aus, um die CSV-Datei zu importieren.


Häufige Fehler und Lösungen

  1. Problem: Excel trennt die Datei trotz Semicolon:=True nicht korrekt.

    • Lösung: Stelle sicher, dass du auch Local:=True in deinem Code verwendest, damit Excel die regionalen Einstellungen berücksichtigt.
  2. Problem: Fehlermeldung beim Öffnen der Datei.

    • Lösung: Überprüfe, ob der angegebene Dateipfad korrekt ist und die Datei existiert.

Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, kannst du auch die QueryTable-Methode verwenden:

Sub ImportCSVAlternative()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets(1) ' Wähle das Arbeitsblatt aus

    With ws.QueryTables.Add(Connection:="TEXT;C:\Dein\Pfad\zu\deiner\datei.csv", Destination:=ws.Range("A1"))
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .Refresh
    End With
End Sub

Diese Methode ermöglicht dir mehr Kontrolle über den Importprozess.


Praktische Beispiele

Hier ist ein Beispiel für den Import einer CSV-Datei mit verschiedenen Trennzeichen:

Sub ImportCSVWithDifferentDelimiter()
    Dim vPath As String
    vPath = "C:\Dein\Pfad\zu\deiner\datei_mit_trennzeichen.csv" ' Passe den Pfad an

    Workbooks.OpenText Filename:=vPath, Origin:=xlWindows, StartRow:=1, _
    DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Comma:=False, _
    Semicolon:=True, Tab:=False, Space:=False, _
    FieldInfo:=Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat)), _
    Local:=True
End Sub

In diesem Beispiel wird die CSV-Datei mit Semikolon als Trennzeichen importiert.


Tipps für Profis

  • Verwende Local:=True: Dies stellt sicher, dass Excel die richtigen regionalen Einstellungen nutzt.
  • Verwende FieldInfo: Mit FieldInfo kannst du die Formatierung der importierten Daten steuern.
  • Überprüfe die Trennzeichen: Achte darauf, welche Trennzeichen in deiner CSV-Datei verwendet werden, um Komplikationen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, wenn meine CSV-Datei andere Trennzeichen hat?
Du kannst die Parameter wie Comma, Semicolon, Tab und Space nach Bedarf ändern, um die entsprechenden Trennzeichen zu aktivieren oder zu deaktivieren.

2. Gibt es eine Möglichkeit, mehrere CSV-Dateien gleichzeitig zu importieren?
Ja, du kannst eine Schleife verwenden, um durch einen Ordner zu iterieren und jede CSV-Datei nacheinander zu importieren. Achte darauf, den Dateipfad und die Dateinamen entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige