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

Forumthread: vor Datenimport Punkt in Komma wandeln

vor Datenimport Punkt in Komma wandeln
Stu
Hallo Excelexperten,
ich möchte Daten aus einer *.dat Datei importieren und in eine Exceltabelle schreiben. Die Daten werden in Excel eingefügt. Die importierten Zahlen haben den Punkt als Dezimaltrennzeichen und werden deshalb in Excel verfälscht angezeigt. Die Frage ist nun wie ich es schaffen den Punkt mit dem Komma zu ersetzten ohne das Excel vorher als Datumswert oder ähnliches interpretiert.
z.B
meine zu importierende Zahl aus der *.dat Datei lautet: 21.9
und wird nach dem Import als 40.442 angezeigt
anstatt richtigerweise 21,9
Hier mein Code:
Sub Datenimport()
Dim Importdatei$, Verzeichnis$ ', aktiver_Blattname As String
Application.ScreenUpdating = False
'aktiver_Blattname = ActiveSheet.Name
Sheets("Tabelle2").Activate
'Verzeichnis = "d:\"
On Error Resume Next
ChDir Verzeichnis
Importdatei = Application.GetOpenFilename("Klimadaten (*.dat), *.dat")
Application.ScreenUpdating = False
Range("f1:g8760").Select
Selection.Clear
Selection.NumberFormat = "0,00"
On Error Resume Next
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = Application.Substitute(Zelle.Value, ".", ",") * 1
Next Zelle
On Error GoTo 0
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Importdatei, _
Destination:=Range("A1"))
.RefreshStyle = xlOverwriteCells
.TextFileTabDelimiter = True
.Refresh BackgroundQuery:=False
End With
Anzeige

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

Betreff
Benutzer
Anzeige
AW: vor Datenimport Punkt in Komma wandeln
26.02.2010 17:55:02
IngGi
Hallo stu,
versuch's doch mal andersrum. Nicht die Daten verbiegen, sondern Excel:
Sub Import()
Dim strDecSep As String
Dim strTsdSep As String
Dim blnSysSep As Boolean
Dim strImportdatei As String
strImportdatei = Application.GetOpenFilename("Klimadaten (*.dat), *.dat")
With Application
strDecSep = .DecimalSeparator
strTsdSep = .ThousandsSeparator
blnSysSep = .UseSystemSeparators
.DecimalSeparator = "."
.ThousandsSeparator = "'"
.UseSystemSeparators = False
End With
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
strImportdatei, Destination:=Range("A1"))
.RefreshStyle = xlOverwriteCells
.TextFileTabDelimiter = True
.Refresh BackgroundQuery:=False
End With
With Application
.DecimalSeparator = strDecSep
.ThousandsSeparator = strTsdSep
.UseSystemSeparators = blnSysSep
End With
End Sub
Gruß Ingolf
Anzeige
AW: wozu Excel verbiegen?
26.02.2010 23:52:52
Daniel
ist doch gar nicht notwendig.
man kann beim Importieren von Daten in der Importfunktion doch vorgeben, ob bei den zu importierenden Daten jetzt der Punkt oder das Komma das Dezimaltrennzeichen ist.
Das geht im Importassistenten im Schritt 3, wenn man auf den Button WEITERE... clickt.
wenn du es als Makro brauchst, führe es einmal von Hand aus und lass dabei den Recorder mitlaufen.
Gruß, Daniel
Anzeige
Danke
01.03.2010 09:44:23
Stu
Danke, ich setzte nun das Makro für den Datenimport ein :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Punkt in Komma umwandeln beim Datenimport in Excel


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Datei: Stelle sicher, dass Deine *.dat Datei im richtigen Format vorliegt und der Punkt als Dezimaltrennzeichen verwendet wird.

  2. Makro erstellen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten. Füge ein neues Modul hinzu und kopiere folgendes Makro hinein:

    Sub Datenimport()
        Dim Importdatei As String
        Application.ScreenUpdating = False
        Importdatei = Application.GetOpenFilename("Klimadaten (*.dat), *.dat")
    
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Importdatei, Destination:=Range("A1"))
            .RefreshStyle = xlOverwriteCells
            .TextFileTabDelimiter = True
            .Refresh BackgroundQuery:=False
        End With
    
        Dim Zelle As Range
        For Each Zelle In ActiveSheet.UsedRange
            Zelle.Value = Application.Substitute(Zelle.Value, ".", ",") * 1
        Next Zelle
    
        Application.ScreenUpdating = True
    End Sub
  3. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um Deine Daten zu importieren und die Punkte durch Kommas zu ersetzen.

  4. Zahlenformat anpassen: Stelle sicher, dass die Zellen das richtige Zahlenformat (z.B. 0,00) haben, um die Werte korrekt anzuzeigen.


Häufige Fehler und Lösungen

  • Falsche Darstellung der Zahlen: Wenn nach dem Import die Zahlen falsch angezeigt werden (z.B. 40.442 statt 21,9), stelle sicher, dass Du das Makro korrekt ausgeführt hast und die Substitution von Punkt zu Komma funktioniert.

  • Excel interpretiert als Datum: Wenn Excel die Zahlen als Datumswerte interpretiert, ändere das Zahlenformat der Zellen vor dem Import.

  • Makro läuft nicht: Überprüfe, ob Makros in Deinen Excel-Einstellungen aktiviert sind.


Alternative Methoden

  • Importassistent nutzen: Du kannst auch den Excel Importassistenten verwenden. Klicke im Importdialog auf "WEITERE..." und wähle das Dezimaltrennzeichen aus.

  • CSV-Datei bearbeiten: Wenn Du eine CSV-Datei hast, kannst Du diese vor dem Import in einem Texteditor öffnen und die Punkte durch Kommas ersetzen.

  • Excel Einstellungen anpassen: Ändere die Dezimaltrennzeichen in den Excel-Optionen, bevor Du die Datei importierst.


Praktische Beispiele

  • Beispiel 1: Importiere eine *.dat Datei mit dem Code oben und überprüfe die Ergebnisse in Deiner Excel-Tabelle.

  • Beispiel 2: Wenn Du eine CSV-Datei importierst, nutze die Funktion csv punkt in komma umwandeln im Texteditor, bevor Du die Datei in Excel öffnest.


Tipps für Profis

  • Makros optimieren: Achte darauf, dass Dein Makro effizient läuft, um große Datenmengen schnell zu verarbeiten.

  • Automatisierung: Überlege, ob Du den Importvorgang automatisieren kannst, indem Du eine Schaltfläche in Excel erstellst, die das Makro ausführt.

  • Fehlerprotokoll: Füge eine Fehlerbehandlung in Dein Makro ein, um mögliche Probleme während des Imports zu protokollieren.


FAQ: Häufige Fragen

1. Wie kann ich eine DAT-Datei in eine CSV-Datei umwandeln?
Du kannst eine DAT-Datei in einem Texteditor öffnen und als CSV speichern. Achte darauf, die Punkte durch Kommas zu ersetzen, falls nötig.

2. Kann ich die Dezimaltrennzeichen ändern, ohne ein Makro zu verwenden?
Ja, du kannst die Einstellungen in Excel ändern, indem du zu Optionen > Erweitert gehst und die Dezimal- und Tausendertrennzeichen anpasst.

3. Wie importiere ich eine CSV-Datei mit dem Punkt als Dezimaltrennzeichen?
Nutze den Importassistenten in Excel und wähle im dritten Schritt das Dezimaltrennzeichen aus, bevor du die Daten importierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige