Komma durch Punkt bei Export ersetzen
Halli Hallo!
Ich bin dabei per VBA Excelwerte als txt-Datei auszugeben.
Dabei stellt sich für mich folgendes Problem:
Laut Schnittstellenbeschreibung des Herstellers soll das Dezimaltrennzeichen ein Punkt sein.
In der Excel-Vorlage kommt jedoch das Komma vor.
Wie muss ich also vorgehen, damit in der txt-Datei ein Punkt ausgegeben wird?
Beispiel:
Excel --> 123,45
txt-Datei --> 123.45
Anmerkung:
Die auszugebenden Daten kommen vom Blatt "Basisdaten" und werden im Blatt "aufbereitet" für das Makro vorbereitet.
Ciao
Tom
Antwort schreiben
Antwort 1 von Beverly vom 08.09.2019, 12:39 Options
Hi Tom,
formatiere die Zellen als Text. Dann kannst du vor dem Exportieren das Komma gegen einen Punkt austauschen.
Bis später,
Karin
Antwort 2 von Tomschi vom 10.09.2019, 07:03 Options
Guten Morgen!
Danke für die rasche Reaktion.
Vielleicht habe ich mich unklar ausgedrückt.
Beispiel:
Die Daten selbst werden am Blatt "Tabelle1" eingegeben.
Der Datenaufbau für den Export befindet sich jedoch im Blatt "Tabelle2".
Wenn ich jetzt am Blatt "Tabelle2" das Format auf Text umstelle, dann kann ich keinen Bezug auf das Blatt "Tabelle1" machen.
In A2 steht dann =Tabelle1!A2.
Oder meinst Du ich sollte die Werte aus "Tabelle1" in "Tabelle2" kopieren (Inhalte einfügen) und danach per Komma "ersetzen durch" Punkt fortfahren?
Ciao
Tom
Antwort 3 von Miss_Gecko vom 10.09.2019, 07:30 Options
Hi Tom,
das Format für Nachkommastellen (und auch für Tausendertrennzeichen) kannst du ganz einfach unter "Extras" > "Optionen" > Reiter "International" umstellen. Bei "Behandlung von Zahlen" den Haken bei "Vom Betriebssystem übernehmen" herausnehmen und die gewünschten Zeichen eingeben.
Viele Grüße
Miss Gecko
Antwort 4 von Miss_Gecko vom 10.09.2019, 07:36 Options
Nachtrag:
Anscheinend funktioniert obige Lösung nur ab Excel 2002 aufwärts. Ansonsten müssten die Ländereinstellungen des kompletten Systems umgestellt werden, was sich auf alle Dateien auswirkt. Anleitung
hier.
Gruß
Antwort 5 von Opa53 vom 10.09.2019, 08:02 Options
Hallo Tom,
wenn ansonsten kein Komma vorkommt, kannst du doch einfach im Textfile das Ersetzen durch den Punkt vornehmen. Als Dauerlösung ist das zwar nichts, aber wenn dieser Export/Import nur gelegentlich ausgeführt wird, dürfte das vermutlich die einfachste Lösung sein.
Oder wird dieses File sofort von einer anderen Anwendung ausgewertet?
Gruß vom
Opa
Antwort 6 von Beverly vom 10.09.2019, 08:20 Options
Hi Tom,
genau so meinte ich das.
Bis später,
Karin
Antwort 7 von Beverly vom 10.09.2019, 08:29 Options
Hi Tom,
mir kommt da gerade noch eine andere Idee: da du offensichtlich das "Aufbereiten" der Daten mit Formeln ausführst (ich hatte zuvor angenommen, dass die Daten mittels Makro in dieses Tabellenblatt kopiert werden) - schreibe deine Formeln in Tabelle2 auf diese Weise
=WECHSELN(Tabelle1!A1;",";".")
Bis später,
Karin
Antwort 8 von Tomschi vom 10.09.2019, 09:32 Options
Hi!
An alle: Vielen Dank für die zahlreichen Beiträge!
@Miss_Gecko:
Excel 2002 steht mir leider nicht zur Verfügung.
Somit fällt dieser Lösungsansatz flach.
Die Ländereinstellungen kann ich nicht ändern.
@Opa53:
Naürlich könnte ich im Textfile selbst das Komme durch Punkt ersetzen, aber
*) soll es in Zukunft verschiedene txt-Dateien geben und da wäre das Handling zu auswendig
*) ist der betreffende zukünftige Anwedern damit wahrscheinlich überfordert
@Beverly:
Danke für Deine Vorschläge.
Muss mir noch überlegen was für die Zukunft besser geeignet ist.
--> Kopieren oder Formel wechseln (= kannte ich bisher nicht)
Wenn der Export mit wechseln korrekt funktioniert, ist das sicherlich ein geeigneter Lösungsansatz.
Leider habe ich meinen USB-Stick zu Hause vergessen und kann erst am Abend damit experimentieren.
Werde mich dann morgen wieder melden.
LieGrü
Tom
Antwort 9 von Tomschi vom 11.09.2019, 09:00 Options
Guten Morgen!
Mit der Formel
wechseln klappt der Export.
DANKE!Noch rasch zwei Fragen:
Laut Schnittstellenbeschreibung soll bei negativen Beträgen das Minuszeichen hinten stehen.
Beispiel:
-1234,56 --> 1234
.56
-Hat jemand einen (weiteren) Ansatz dafür?
Weiters sollen VOR den Exportzeilen die Versionnummer stehen.
Beispiel:
"Version 01"
1|2|0|0|101|1|0|1,25| ...
Habe diesbezüglich eine abgespeckte Testdatei unter
http://www.netupload.de/detail.php?img=8775254acfb474d95b160d4bc62b...abgelegt.
Vielen Dank für die Unterstützung.
Tom
Antwort 10 von Tomschi vom 02.10.2019, 15:47 Options
Hi!
Jetzt ist noch ein Problem aufgetreten. :-(
Die Formel wechseln bzw. Application.Substitute(Range("CSV_Betrag"), ",", ".") funktionieren.
Aber
Beim Import der txt-Datei interpretiert das Programm
den ursprünglichen Wert 1044.70 als 104.47.
Mir ist aufgefallen, dass bereits beim Erstellen der txt-Datei 1044.7 (ohne 0) steht.
Kann man beim Erzeugen bereits eine "Nachnull" mitgeben?
123.45 wird korrekt eingelesen.
Thanx
Tom