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

CSV-Import Dezimalzahlen

Forumthread: CSV-Import Dezimalzahlen

CSV-Import Dezimalzahlen
24.07.2020 21:02:17
Robin
Hallo,
Ich habe Daten aus mehreren CSV-Dateien in Excel über ein Makro reinkopiert, das auch soweit funktioniert. Jedoch sind hier Punkte als Dezimaltrennzeichen drin. Über Suchen/Ersetzen kann ich ganz normal "." durch "," ersetzen, z.B -2.761449 zu -2,761449
Wenn ich diesen Weg über das Makro (Suchen und Ersetzen im Makrorecorder aufgenommen) gehen will, verwandelt dieser die Zahlen mit Tausendertrennzahlen, also in -2.761.449.
Vielleicht kann mir jemand helfen.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: CSV-Import Dezimalzahlen
25.07.2020 02:10:29
onur
Liegt wohl an Zeile 37 deines Makros.
AW: beim Import beachten
25.07.2020 08:49:59
Fennek
Hallo,
es ist immer besser beim Importieren der CSV auf die Umwandlung der Zahlen zu achten, als dies nachträglich korrigieren zu wollen.
Im Zweifelsfall nenne die Datei um in *.txt, dann gibt es einen anderen Import-Assistenten.
mfg
AW: CSV-Import Dezimalzahlen
25.07.2020 10:38:43
fcs
Hallo Robin,
deine CSV-Datei ist scheinbar keine lupenreine CSV (. = Dezimaltrennzeichen - , = Spaltentrennzeichen)
Probiere mal vor dem Öffnen der CSV-Dateien die Excel-Option für das Dezimaltrennzeichen auf "." zu setzten, nach dem Import wieder zurückändern.
LG
Franz
Beispiel-Makro:
Sub Import_CSV()
' Import_CSV Makro
Dim varDatei As Variant
Dim wkbCSV As Workbook
Dim wksCSV As Worksheet
Dim wksZiel As Worksheet
Dim Zei_Z As Long, zei_L As Long, zeiStart As Long
Set wksZiel = ActiveWorkbook.Worksheets("CSV_Daten") 'Zieltabelle für Einfügen der CSV-Daten
'Excel-Dezimalzeichen vor dem Öffnen der CSV-Datei auf "." setzen
With Application
.DecimalSeparator = "."
.UseSystemSeparators = False
End With
'Startzeilen für Kopieren und Einfügen setzen
With wksZiel
If .Range("A1").Text = "" Then 'Blatt ist leer
zeiStart = 1 'bei 1. Datei ab Zeile 1 kopieren
Zei_Z = 1 '1. Einfügezeile
Else
zeiStart = 2
Zei_Z = .UsedRange.Row + .UsedRange.Rows.Count 'nächste freie Zeile
End If
End With
'CSV-Datei(en) auswählen und abarbeiten
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte zu importierende CSV-Datei(en) auswählen - Mehrfachauswahl ist möglich"
.FilterIndex = 6 'CSV-, TXT-Dateien
If .Show = -1 Then
For Each varDatei In .SelectedItems
Set wkbCSV = Workbooks.Open(Filename:="CSV_DatenStandrd_USA.csv", ReadOnly:=True)
Set wksCSV = wkbCSV.Sheets(1)
With wksCSV
zei_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
.Range(.Rows(zeiStart), .Rows(zei_L)).Copy wksZiel.Cells(Zei_Z, 1)
End With
'nächste Einfügezeile
Zei_Z = Zei_Z + zei_L - zeiStart + 1
If zeiStart = 1 Then zeiStart = 2 'bei allen weiteren Daten ab Zeile 2
wkbCSV.Close savechanges:=False
Next
End If
End With
'Dezimalzeichen auf Systemeinstellungen zurücksetzen
Application.UseSystemSeparators = True
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

CSV-Import von Dezimalzahlen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu den Optionen.

    • Setze das Dezimaltrennzeichen auf . (Punkt).
    • Dies kannst Du unter Datei > Optionen > Erweitert > Bearbeitungsoptionen > Dezimaltrennzeichen ändern.
  2. Importiere die CSV-Datei:

    • Gehe zu Daten > Daten abrufen > Aus Text/CSV.
    • Wähle die entsprechende CSV-Datei aus.
  3. Prüfe die Vorschau:

    • Achte darauf, dass die Zahlen im richtigen Format angezeigt werden. Falls nicht, überprüfe die ursprünglichen CSV-Daten.
  4. Nach dem Import:

    • Setze das Dezimaltrennzeichen wieder auf , (Komma) zurück.
  5. Optional: Verwende ein Makro:

    • Nutze das folgende Makro, um den Import zu automatisieren und das Dezimaltrennzeichen beim Import anzupassen:
      Sub Import_CSV()
      Dim varDatei As Variant
      Dim wkbCSV As Workbook
      Dim wksZiel As Worksheet
      Dim Zei_Z As Long, zei_L As Long, zeiStart As Long
      Set wksZiel = ActiveWorkbook.Worksheets("CSV_Daten")
      With Application
         .DecimalSeparator = "."
         .UseSystemSeparators = False
      End With
      ' ... (Rest des Codes)
      End Sub

Häufige Fehler und Lösungen

  • Fehler: Falsches Dezimaltrennzeichen nach dem Import

    • Lösung: Stelle sicher, dass Du das Dezimaltrennzeichen in den Excel-Optionen vor dem Import auf . setzt.
  • Fehler: Zahlen werden als Text formatiert

    • Lösung: Achte darauf, dass das Format der CSV-Datei korrekt ist. Du kannst auch die Zellen nach dem Import in Zahl umformatieren.
  • Fehler: CSV-Datei wird als Datum statt Zahl interpretiert

    • Lösung: Achte beim Import darauf, dass Du die richtigen Datentypen auswählst.

Alternative Methoden

  • CSV-Datei in TXT umbenennen:

    • Manchmal kann es hilfreich sein, die CSV-Datei in eine TXT-Datei umzubenennen, um den Excel-Import-Assistenten zu nutzen, der Dir mehr Optionen zur Verfügung stellt.
  • Direktes Importieren mit VBA:

    • Du kannst auch VBA verwenden, um CSV-Dateien direkt zu importieren und die Dezimaltrennzeichen während des Imports zu ändern.

Praktische Beispiele

  1. Beispiel für eine CSV-Datei:

    Preis;Menge
    10.50;2
    15.75;1
    5.00;5
  2. Makro zur Anpassung des Dezimaltrennzeichens: Wenn Du ein Makro verwendest, um CSV-Dateien zu importieren, kannst Du das oben angegebene Beispiel verwenden, um sicherzustellen, dass die Dezimaltrennzeichen korrekt gesetzt werden.


Tipps für Profis

  • Dezimaltrennzeichen ändern für eine Datei:

    • Wenn Du oft mit CSV-Dateien arbeitest, die unterschiedliche Dezimaltrennzeichen verwenden, kann es sinnvoll sein, ein allgemeines Makro zu erstellen, das die Trennzeichen automatisch anpasst.
  • Überprüfe die Regionseinstellungen:

    • Stelle sicher, dass die Regionseinstellungen Deines Computers mit dem Format der CSV-Datei übereinstimmen.

FAQ: Häufige Fragen

1. Wie ändere ich das Dezimaltrennzeichen in Excel für eine Datei?
Du kannst das Dezimaltrennzeichen in den Excel-Optionen unter Datei > Optionen > Erweitert ändern. Vergiss nicht, es nach dem Import wieder zurückzustellen.

2. Was mache ich, wenn Excel Zahlen als Text importiert?
Überprüfe die Formatierung der Zellen nach dem Import und ändere sie in Zahl. Du kannst auch die Funktion WERT() verwenden, um Text in Zahlen umzuwandeln.

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