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

Punkt statt Komma.

Forumthread: Punkt statt Komma.

Punkt statt Komma.
10.02.2008 12:57:38
Berth
Liebe Excel Freunde,
In einer gestrigen Anfrage habe ich nach einem Weg gesucht Werte aus einem ASCII-File umzuformatieren, so dass die Werte, die im ASCII-File stehen in mehrere Spalten aufgeteilt werden.
Im Anhang ist die Lösung eines Excel-Freundes (Vielen Dank an Frank!), die soweit sehr gut funktioniert. Allerdings werden die Dezimaltrennzeichen als Komma dargestellt. Ich möchte nun die gesamt Excel-Tabelle als txt-file speichern, wobei wieder Punkte als Dezimaltrennzeichen verwendet werden sollten.
Dies möchte ich natürlich gleich in das Makro einbauen.
Sieht jemand von Euch eine elegante Möglichkeit?
Vielen Dank für Eure Hilfe und viele Grüße
Berth

Sub FileImport()
'Zeilenweiser Import eines großen Textfiles in Excel-Tabellenblätter
Dim Zeile As Long, wksNeu As Worksheet, wbNeu As Workbook, BlattNr As Integer
Dim FF As Integer, strText As String, ZeilenBlatt As Long, varDatei, varTest
Dim strNameText As String, Spalte As Integer, var1 As String, var2 As String
varDatei = Application.GetOpenFilename(Filefilter:="Alle (*.*),*.*", _
Title:="Bitte ASCII-Datendatei auswählen", MultiSelect:=False)
If varDatei = False Then GoTo Ende
ZeilenBlatt = Val(InputBox("Anzahl Datenzeilen je Spalte?", _
"ASCII-Daten einlesen", 10000))
If ZeilenBlatt = 0 Then GoTo Ende 'Abbrechen wurde gewählt
Set wbNeu = Workbooks.Add(Template:=xlWBATWorksheet)
Set wksNeu = wbNeu.Worksheets(1)
If ZeilenBlatt > wksNeu.Rows.Count Then
MsgBox "Zeilenzahl pro Blatt muss  "" Then wksNeu.Cells(Zeile, Spalte) = CDbl(var1)
If var2  "" Then wksNeu.Cells(Zeile, Spalte + 1) = CDbl(var2)
Else
var2 = Trim(Mid(strText, 9)) 'Wert
var2 = Application.WorksheetFunction.Substitute(var2, ".", ",")
If var2  "" Then wksNeu.Cells(Zeile, Spalte) = CDbl(var2)
End If
Next
'wbNeu.Save 'NeueDatei speichern
'Fortschritt in Statuszeile anzeigen und Zahlenformat der Spalten
If Spalte = 1 Then
Application.StatusBar = (BlattNr - 1) * 254 + ZeilenBlatt _
& " Datensätze eingelesen!"
wksNeu.Columns(1).NumberFormat = "#,##0.0"
wksNeu.Columns(2).NumberFormat = "#,##0.000"
Spalte = Spalte + 2
Else
Application.StatusBar = (BlattNr - 1) * 254 + (Spalte - 1) * ZeilenBlatt _
& " Datensätze eingelesen!"
wksNeu.Columns(Spalte).NumberFormat = "#,##0.000"
Spalte = Spalte + 1
End If
'Weiteres Blatt einfügen, wenn alle Spalten gefüllt sind
If Spalte > wksNeu.Columns.Count Then
Spalte = 1
Set wksNeu = wbNeu.Worksheets.Add(after:=wbNeu.Sheets(strNameText & _
Format(BlattNr, "000")), Type:=xlWorksheet)
BlattNr = BlattNr + 1
wksNeu.Name = strNameText & Format(BlattNr, "000")
End If
Loop
Close #FF
Application.StatusBar = False
Application.ScreenUpdating = True
wbNeu.Save 'NeueDatei speichern
MsgBox "Daten wurden eingelesen!"
Ende:
Set wbNeu = Nothing: Set wksNeu = Nothing
End Sub


Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Punkt statt Komma.
10.02.2008 13:04:00
Tino
Hallo,
hiermit könntest du aus allen Kommas wieder einen Punkt machen.
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Gruß
Tino

AW: Punkt statt Komma.
10.02.2008 15:01:28
Berth
Hallo Tino,
Mit Suchen und Ersetzen lässt sich das Problem leider nicht lösen. Ich habe eine Beispieltabelle angefügt:
https://www.herber.de/bbs/user/49791.xls
Sobald ich hier Punkte durch Kommas ersetze werden auch die Ziffern komplett geändert z.B. 0,100 wird zu 100.
Ich möchte eigentlich nur die Zahlen aus dem Excel File in einem txt-File speichern, wobei einzelne Spalten durch Tabulatoren getrennt sind und Kommas in Punkte umgewandelt werden. Sonst sollen alle Ziffern (auch Nullen gleich bleiben). Das ganze natürlich möglichst mit VBA.
Vielen Dank für Deine Hilfe und Grüße
Berth

Anzeige
AW: Punkt statt Komma.
10.02.2008 15:02:00
Berth
Hallo Tino,
Mit Suchen und Ersetzen lässt sich das Problem leider nicht lösen. Ich habe eine Beispieltabelle angefügt:
https://www.herber.de/bbs/user/49791.xls
Sobald ich hier Punkte durch Kommas ersetze werden auch die Ziffern komplett geändert z.B. 0,100 wird zu 100.
Ich möchte eigentlich nur die Zahlen aus dem Excel File in einem txt-File speichern, wobei einzelne Spalten durch Tabulatoren getrennt sind und Kommas in Punkte umgewandelt werden. Sonst sollen alle Ziffern (auch Nullen gleich bleiben). Das ganze natürlich möglichst mit VBA.
Vielen Dank für Deine Hilfe und Grüße
Berth

Anzeige
AW: Punkt statt Komma.
10.02.2008 15:25:00
Daniel
Hi
geh mal unter EXTRAS-OPTIONEN-INTERNATIONAL, da kannst du einstellen, ob du das Komma oder den Punkt als Dezimaltrennzeichen haben willst.
so wie hier die Einstellung ist, wird es dann auch in der Text-Datei gespeichert. (Datei-Speichern unter)
falls du es als Makro brauchst, lass einfach den Recorder mitlaufen, dann siehst du wie es geht.
bzw, ist ja schnell gemacht:

With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With


Gruß Daniel

Anzeige
Danke: Punkt statt Komma.
10.02.2008 15:47:00
Berth
Hallo Daniel,
vielen Dank. Ich denke damit ist mein Programm perfekt. Falls noch weitere Probleme auftreten werde ich wieder eine Anfrage ins Forum stellen. Nochmals vielen Dank an alle und viele Grüße
Berth
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Punkt statt Komma in Excel umstellen


Schritt-für-Schritt-Anleitung

  1. Excel-Einstellungen anpassen:

    • Gehe zu Extras -> Optionen -> International.
    • Ändere das Dezimaltrennzeichen von Komma zu Punkt.
  2. VBA-Makro verwenden:

    • Du kannst auch ein VBA-Makro verwenden, um die Einstellungen anzupassen. Hier ist ein Beispiel:
    With Application
        .DecimalSeparator = "."
        .ThousandsSeparator = ","
        .UseSystemSeparators = False
    End With
  3. Kommas durch Punkte ersetzen:

    • Um Kommas in einer Excel-Tabelle durch Punkte zu ersetzen, kannst du die folgende Zeile verwenden:
    Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart
  4. Textdatei speichern:

    • Stelle sicher, dass du die Datei als .txt speicherst, nachdem du die Änderungen vorgenommen hast.

Häufige Fehler und Lösungen

  • Excel erkennt Komma nicht: Wenn Excel ein Komma nicht als Dezimaltrennzeichen erkennt, überprüfe die Ländereinstellungen in Windows und stelle sicher, dass sie mit deiner Excel-Konfiguration übereinstimmen.

  • Punkte werden zu fehlerhaften Zahlen: Wenn du Punkte in Kommas umwandelst und die Zahlen falsch angezeigt werden, stelle sicher, dass du nur die gewünschten Zellen bearbeitest und nicht die gesamte Tabelle.


Alternative Methoden

  • Excel auf Punkt statt Komma umstellen: Du kannst die Regionaleinstellungen in Windows ändern, um das Dezimalzeichen global auf Punkt zu setzen. Dies ist besonders nützlich, wenn du häufig mit internationalen Daten arbeitest.

  • ASCII-Datei importieren: Wenn du eine ASCII-Datei importierst, kannst du das Dezimalzeichen im Importprozess festlegen, indem du die oben genannten VBA-Einstellungen anwendest.


Praktische Beispiele

  • Beispiel für das Ersetzen von Kommas:

    • Angenommen, du hast die Zahlen 1,23 und 4,56 in einer Spalte. Mit dem Befehl Cells.Replace kannst du diese schnell in 1.23 und 4.56 umwandeln.
  • VBA-Makro zur Konvertierung:

    • Nutze ein einfaches Makro, um alle Kommas in einer bestimmten Spalte in Punkte zu ändern:
    Sub KommaZuPunkt()
        Dim rng As Range
        Set rng = Worksheets("Tabelle1").Range("A1:A100") ' Ändere den Bereich nach Bedarf
        rng.Replace What:=",", Replacement:=".", LookAt:=xlPart
    End Sub

Tipps für Profis

  • Verwendung von Textfunktionen: Nutze die Funktion TEXT() in Excel, um sicherzustellen, dass Zahlen im gewünschten Format angezeigt werden.
  • Sichern der Datei: Stelle sicher, dass du eine Sicherung deiner Excel-Datei machst, bevor du weitreichende Änderungen vornimmst.
  • Makro-Recorder: Um komplexe Prozesse zu automatisieren, nutze den Makro-Recorder. Dies kann dir helfen, häufige Aufgaben zu automatisieren.

FAQ: Häufige Fragen

1. Wie kann ich Excel auf Punkt statt Komma umstellen?
Gehe zu Extras -> Optionen -> International und ändere das Dezimaltrennzeichen auf Punkt.

2. Was kann ich tun, wenn Excel die Punkte nicht als Dezimaltrennzeichen erkennt?
Überprüfe deine Ländereinstellungen in Windows und stelle sicher, dass sie mit den Excel-Einstellungen übereinstimmen.

3. Wie kann ich Kommas in einer Excel-Tabelle schnell durch Punkte ersetzen?
Verwende die Cells.Replace Methode, um Kommas in Punkten zu ersetzen. Ein einfaches Makro kann dies automatisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige