Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

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
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige