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
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige