Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Umlaute beim Datenimport

Umlaute beim Datenimport
ing.grohn
Hallo Forum,
beim Datenimport in Excel 2007 (CSV-Datei) kommen die Umlaute nicht über (im Editor ist alles OK)!
Hintergrund ist wahrscheinlich die Windows-Server-Version (in Excel "Punkt" als Dezimaltrenner, _ hab ich geändert). Die Daten werden mit einem Makro übernommen:

Workbooks.OpenText _
Filename:=DatBez, _
Origin:=xlWindows, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=True, _
Semicolon:=True, _
Comma:=False, _
Space:=False, _
Other:=False, _
FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1), _
Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), _
TrailingMinusNumbers:=True

funktioniert unter 2003 und 2010 (Win 7) problemlos.
Welcher Wert für Origin:=xlWindows muß ich wählen damit der Zeichensatz stimmt?
Kann das nicht probieren, weil ich kein 2007 habe.
Bedanke mich für Eure Hilfe
Mit freundlichen Grüßen
ALbrecht

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Umlaute beim Datenimport
10.09.2012 11:39:45
Rudi
Hallo,
wie soll man das testen?
xlWindows ist OK.
Gruß
Rudi

AW: Umlaute beim Datenimport
10.09.2012 13:19:41
ing.grohn
Hallo Rudi,
vielen Dank erstmal für Deine Antwort.
Zugegeben, der Code ist so nicht zu testen: Im Prinzip ist das die Makroaufzeichnung des Imports von 2003.
Offensichtlich ist der Wert von "xlWindows" bei 2003 und 2010 unter Win 7 identisch (=2). Bei 2007 unter Windows-Server (2000?), englisch, scheint er aber anders zu sein.
Nur, welchen Wert hat "xlWindows" in der Server-Version oder muss er haben? (ich kann es nicht testen (kein Win Server, kein 2007)
Mit freundlichen Grüßen
Albrecht

Anzeige
AW: Umlaute beim Datenimport
10.09.2012 13:23:17
Rudi
Hallo,
dafür sind doch die Konstanten da, dass man sich nicht um den Wert kümmern muss.
So ist es egal, ob sie in der einen Version 1 beinhaltet und in einer anderen 123.
Gruß
Rudi

AW: Umlaute beim Datenimport
10.09.2012 13:41:07
ing.grohn
Hallo Rudi,
und warum seh dann irgend ein "Kästchen" o.ä. und kein Umlaut (wie äöü)?
Dir ist doch die Einstellung des Kommas nicht unbekannt bei einer gemischten Installation oder?
Mit freundlichen Grüßen
Albrecht

Anzeige
AW: Umlaute beim Datenimport
10.09.2012 13:50:29
Rudi
Hallo,
ehrlich gesagt benutze ich die Opentext-Methode nie. Eherr sowas:
Sub Datei_Importieren()
Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long
Const cStrDelim As String = ";" 'Trennzeichen
Const cLngFirst As Long = 1 'erste zu beschreibende Zeile
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
.InitialFileName = "c:\test\*.csv"  'Pfad anpassen
If .Show = -1 Then
strFileName = .SelectedItems(1)
End If
End With
If strFileName  "" Then
Application.ScreenUpdating = False
Open strFileName For Input As #1
arrDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
For lngR = 1 To UBound(arrDaten)
arrTmp = Split(arrDaten(lngR), cStrDelim)
If UBound(arrTmp) > -1 Then
With ActiveSheet
lngLast = .Cells(Rows.Count, 1).End(xlUp).Row + 1
lngLast = Application.Max(lngLast, cLngFirst)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End With
End If
Next lngR
End If
End Sub
Was hat die Einstellung des Dezimaltrennzeichens mit Umlauten zu tun?
Gruß
Rudi

Anzeige
AW: Umlaute beim Datenimport
10.09.2012 13:55:10
ing.grohn
Hallo Rudi,
Dein Beispiel werde ich mir näher ansehen und später berichten (ist nicht ganz einfach mit dem Test).
Zur Frage: k. A. aber, dass mit dem Komma hat ja was mit "Ländern" zu tun und die Umlaute ja irgendwie auch!!
Mit freundlichen Grüßen
Albrecht
;
Anzeige
Anzeige

Infobox / Tutorial

Umlaute beim Datenimport in Excel


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der CSV-Datei: Stelle sicher, dass die CSV-Datei korrekt formatiert ist und die Umlaute (ä, ö, ü) im Texteditor sichtbar sind.

  2. Öffnen von Excel: Starte Excel 2007. Wenn du eine andere Version verwendest, können die Schritte leicht variieren.

  3. Datenimport mit VBA: Verwende den folgenden VBA-Code für den Import:

    Workbooks.OpenText _
    Filename:=DatBez, _
    Origin:=xlWindows, _
    StartRow:=1, _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, _
    Tab:=True, _
    Semicolon:=True, _
    Comma:=False, _
    Space:=False, _
    Other:=False, _
    FieldInfo:= _
    Array(Array(1, 1), Array(2, 1), Array(3, 1), _
    Array(4, 1), Array(5, 1), Array(6, 1), _
    Array(7, 1)), _
    TrailingMinusNumbers:=True
  4. Anpassen des Origin-Werts: Der Wert für Origin:=xlWindows kann variieren. Prüfe, ob die Einstellung für deinen Server korrekt ist. Bei Windows-Servern kann es notwendig sein, den Wert zu ändern.

  5. Testen und Überprüfen: Nach dem Import überprüfe, ob die Umlaute korrekt angezeigt werden. Wenn nicht, könnte es an der Codierung der CSV-Datei liegen.


Häufige Fehler und Lösungen

  • Umlaute werden als Kästchen angezeigt: Dies kann auf eine falsche Zeichencodierung hinweisen. Stelle sicher, dass die CSV-Datei im UTF-8-Format gespeichert ist.

  • Fehlerhafte Trennzeichen: Wenn die Daten nicht richtig importiert werden, überprüfe, welches Trennzeichen in der CSV-Datei verwendet wird und passe die Einstellungen im VBA-Code entsprechend an.

  • Excel-Versionen: Beachte, dass der Code in Excel 2003 und 2010 funktioniert, jedoch bei Excel 2007 unter Windows-Servern möglicherweise Anpassungen nötig sind.


Alternative Methoden

  1. Manueller Import: Du kannst die CSV-Datei auch direkt über "Daten" > "Aus Text" importieren. Achte darauf, die richtigen Trennzeichen und Ursprungsoptionen auszuwählen.

  2. Text-Import-Assistent: Wenn du die CSV-Datei öffnest, kannst du den Text-Import-Assistenten verwenden, um die Trennzeichen und die Datenformate genau festzulegen.

  3. Makro verwenden: Erstelle ein Makro, das die Datei importiert, wie im vorherigen Abschnitt beschrieben. Dies kann die Effizienz steigern, besonders bei wiederholten Imports.


Praktische Beispiele

Ein einfaches Beispiel für den Import einer CSV-Datei mit Umlauten könnte so aussehen:

Sub ImportCSV()
    Dim strFileName As String
    strFileName = Application.GetOpenFilename("CSV Files (*.csv), *.csv")
    If strFileName <> "False" Then
        Workbooks.OpenText Filename:=strFileName, Origin:=xlWindows, DataType:=xlDelimited, Semicolon:=True
    End If
End Sub

In diesem Beispiel wird der Benutzer aufgefordert, eine CSV-Datei auszuwählen, die dann mit den korrekten Einstellungen importiert wird.


Tipps für Profis

  • Verwende UTF-8: Stelle sicher, dass deine CSV-Datei im UTF-8-Format gespeichert ist, um Probleme mit Umlauten zu vermeiden.

  • Teste in verschiedenen Umgebungen: Wenn du auf Servern arbeitest, teste den Import in verschiedenen Umgebungen, um sicherzustellen, dass alle Einstellungen korrekt sind.

  • Fehlerprotokollierung: Füge in dein Makro Fehlerprotokollierung ein, um Probleme während des Imports schnell zu identifizieren und zu beheben.


FAQ: Häufige Fragen

1. Warum werden Umlaute nicht korrekt angezeigt?
Umlaute können aufgrund einer falschen Codierung oder falscher Trennzeichen nicht korrekt angezeigt werden. Stelle sicher, dass die CSV-Datei im richtigen Format gespeichert ist.

2. Wie kann ich die richtige Origin-Einstellung finden?
Die Origin-Einstellung kann sich je nach Excel-Version und Betriebssystem unterscheiden. Es kann hilfreich sein, verschiedene Werte auszuprobieren oder in der Dokumentation nachzulesen.

3. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren auch in neueren Versionen wie Excel 365, jedoch können einige Schritte leicht variieren.

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