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

workbooks.open liest umlaute inkorrekt

Forumthread: workbooks.open liest umlaute inkorrekt

workbooks.open liest umlaute inkorrekt
12.06.2020 10:53:08
Heinzs
Hallo Excel-Spezis,
folgender Code liest CSV Datei ein:
gn_datei="test.csv"
Workbooks.Open Filename:=gn_datei, Local:=True
…
Einlesen funktioniert, Jedoch werden die Umlaute inkorrekt dargestellt; es erscheinen z.B. ?
Die CSV kommt aus einem Fremdsystem
Frage: Kann ich irgendwo den Zeichensatz beim Einlesen mit angeben?
In der CSV sind auch lange Zahlenfelder vorhanden (mehr als 20 Stellen), Excel scheidet mir diese immer ab
Frage: Wie kann ich das vermeiden?
Danke für Hilfe!
Heinz
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: workbooks.open liest umlaute inkorrekt
12.06.2020 11:32:26
Martin
Hallo Heinz,
vermutlich handelt es sich um eine CSV-Datei im UTF-8 Format. Da ich gerade keine Zeit habe und du in VBA fit bist, verweise ich einfach mal auf eine Importmöglichkeit:
https://developer.rhino3d.com/guides/rhinoscript/read-write-utf8/
Viele Grüße
Martin
Anzeige
AW: workbooks.open liest umlaute inkorrekt
15.06.2020 10:47:26
Heinz
Hallo Martin,
danke für deinen Tip…
MfG
Heinz
;
Anzeige
Anzeige

Infobox / Tutorial

Umlaute korrekt einlesen mit Workbooks.Open in Excel


Schritt-für-Schritt-Anleitung

  1. Überprüfe die CSV-Datei: Stelle sicher, dass die CSV-Datei im UTF-8 Format vorliegt. Dies ist wichtig, um Umlaute korrekt darzustellen.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke mit der rechten Maustaste auf „VBAProject (DeineArbeitsmappe)“ und wähle „Einfügen“ > „Modul“.

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ImportCSV()
       Dim gn_datei As String
       gn_datei = "test.csv"
    
       Workbooks.Open Filename:=gn_datei, Local:=True
    End Sub
  5. Umlaute sicherstellen: Um sicherzustellen, dass Umlaute korrekt angezeigt werden, musst du die Datei möglicherweise mit Workbooks.OpenText einlesen:

    Sub ImportCSV_UTF8()
       Dim gn_datei As String
       gn_datei = "test.csv"
    
       Workbooks.OpenText Filename:=gn_datei, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
           ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True, _
           Space:=False, Other:=False, FieldInfo:=Array(1, 1)
    End Sub
  6. Lange Zahlenfelder: Wenn Excel lange Zahlen (mehr als 20 Stellen) abkürzt, kannst du die Felder beim Import als Text formatieren, indem du das FieldInfo-Array anpasst.


Häufige Fehler und Lösungen

  • Fehler bei Umlauten: Wenn Umlaute nicht korrekt dargestellt werden, überprüfe, ob die CSV-Datei tatsächlich im UTF-8 Format vorliegt. Du kannst einen Texteditor verwenden, um dies zu überprüfen und gegebenenfalls die Kodierung zu ändern.

  • Abgeschnittene Zahlen: Wenn Excel lange Zahlen abschneidet, ändere die FieldInfo-Parameter im Workbooks.OpenText Aufruf. Setze den Typ auf 2, um die Werte als Text zu importieren.


Alternative Methoden

Eine alternative Möglichkeit, um CSV-Dateien mit Umlaute korrekt einzulesen, ist die Verwendung von Power Query:

  1. Gehe zu „Daten“ > „Daten abrufen“ > „Aus Datei“ > „Aus Text/CSV“.
  2. Wähle die Datei aus und achte darauf, dass du im Importfenster die richtige Kodierung (UTF-8) auswählst.
  3. Klicke auf „Daten laden“, um die Daten in Excel zu importieren.

Praktische Beispiele

Beispiel 1: Einlesen einer CSV-Datei mit Umlaute

Sub ImportCSV()
    Dim gn_datei As String
    gn_datei = "c:\deinVerzeichnis\test.csv"

    Workbooks.Open Filename:=gn_datei, Local:=True
End Sub

Beispiel 2: Einlesen mit Workbooks.OpenText

Sub ImportCSV_UTF8()
    Dim gn_datei As String
    gn_datei = "c:\deinVerzeichnis\test.csv"

    Workbooks.OpenText Filename:=gn_datei, DataType:=xlDelimited, Comma:=True, FieldInfo:=Array(1, 2)
End Sub

Tipps für Profis

  • Nutze die OpenText Methode, um spezifische Optionen für das Einlesen deiner CSV-Datei festzulegen, insbesondere wenn du mit verschiedenen Trennzeichen oder Datenformaten arbeitest.
  • Erstelle eine Funktion, die die CSV-Datei dynamisch lädt, um wiederholte Aufgaben zu automatisieren.
  • Berücksichtige, dass bei großen Datenmengen die Performance durch den Importprozess beeinflusst werden kann. Plane dementsprechend.

FAQ: Häufige Fragen

1. Wie kann ich den Zeichensatz beim Einlesen ändern?
Beim Einlesen mit Workbooks.OpenText kannst du durch die Auswahl der richtigen Optionen die Kodierung (z.B. UTF-8) angeben.

2. Warum werden meine langen Zahlenfelder abgeschnitten?
Excel interpretiert lange Zahlen als wissenschaftliche Notation. Du kannst dies umgehen, indem du die FieldInfo-Parameter anpasst und die Felder als Text importierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige