Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem beim Erzeugen einer CSV

Problem beim Erzeugen einer CSV
17.05.2005 12:11:45
SteffenS
Hallo und guten Tag,
ich muss meinen Beitrag von voriger Woche nochmal einstellen, denn ich habe leider noch keine Lösung gefunden.
Hier also meine Frage:
Ich erzeuge mit Excel eine CSV Datei, die ja bekanntlich die Spalten mit Komma trennt.
Mit einem Makro bekomme ich es hin dass die Datei die Kommas in Semikolas umwandelt.
Leider tritt dabei ein Phänomen auf, alle Beträge die vorher als Dezimaltrenner einen Punkt (".") hatten, haben nach der Umwandlung ein Komma (",").
Was muss ich tun, damit auch weiterhin der Dezimaltrenner ein Punkt (".") ist?
Hier nun mein Code:

Sub semi_setzen_bm_report()
'Komma in Semikolon ersetzen
Dim s$
Dim TMP$
Dim z%, f%
' Text-Datei erstellen. Zeilenweise übertragen durch "TMP"
Open "C:\bm_report\export_files\BM_Report " For Output As #1
For z = 1 To ActiveSheet.UsedRange.Rows.Count
For f = 1 To ActiveSheet.UsedRange.Columns.Count
TMP = TMP & CStr(ActiveSheet.Cells(z, f).Text) & ";"
Next f
Print #1, TMP
TMP = ""
Next z
Close 1
End Sub

Danke für Eure Hilfe
MFG
Steffen Schmerler

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Erzeugen einer CSV
17.05.2005 12:54:07
MichaV
Hi,
kann Dein Problem auch beim zweiten mal nicht nachvolziehen, bei mir klappt es einwandfrei. Vielleicht solltest Du noch eine Beispielmappe posten. Mir ist nicht ganz klar, wie einige Werte zu einem . als Dezimaltrennzeichen kommen.
Gruß- Micha
PS: Bist Du Dir sicher, daß das Problem beim Erzeugen der CSV auftritt? Siehe https://www.herber.de/forum/messages/612343.html
Gruß- Micha
weitere Erklärung
17.05.2005 13:00:31
SteffenS
Also folgendermaßen.
Ich erzeuge die Datei in zwei Schritten.
1. Schritt CSV Datei erzeugen --&gt Spalten sind durch Semikola getrennt und Dezimaltrennzeichen ist Punkt
2. Schritt o.g. Makro wird ausgeführt --&gt Spalten durch Komma getrennt, Dezimaltrennzeichen ist plötzlich auch Komma.
Beide Male habe ich die Datei mit dem Editor geöffnet, um zu prüfen was passiert!
Eine Beispielmappe kann ich leider nicht schicken, da es sich um eine SUSA handelt.
Vielleicht könnt Ihr mir trotzdem helfen?!
Danke
Steffen
Anzeige
AW: weitere Erklärung
17.05.2005 13:20:01
MichaV
Hi,
sorry, aber ich kapiers nicht.
2. Schritt o.g. Makro wird ausgeführt --: Spalten durch Komma getrennt, ....
Bei DEM Makro mit Sicherheit nicht. Hast Du auch das richtige Makro gepostet?
1. Schritt CSV Datei erzeugen --: Spalten sind durch Semikola getrennt und Dezimaltrennzeichen ist Punkt.. na wunderbar! Also ist nur das "falsche" Trennzeichen ein Problem?
Wie erzeugts Du denn die CSV? (sag jetzt nicht, mit o.g. Makro. Siehe 2. Schritt)
Micha
erweiterte Erklärung
18.05.2005 19:33:53
SteffenS
Danke für Deine Antwort Micha.
Also,
ich erzeuge eine normale CSV Datei.
Erst danach ersetze ich die Kommas der CSV mit dem o.g. Makro in Semikolas.
Danach haben alle Zahlen die als Dezmimaltrennzeichen eine Punkt hatten z.b. 2.22
Plötzlich ein Komma: 2,22.
Die Zahlen haben schon bevor ich die CSV Datei erzeuge einen Punkt als Dezmimaltrennzeichen .
Ich weiss deshalb nicht warum excel mit o.g. Code plötzlich ein Komma setzt.
Vielleicht weiß Du jetzt besser was ich meine und kannst mir eventuell helfen?!
Danke Dir
LG
Steffen Schmerler
Anzeige
AW: erweiterte Erklärung
18.05.2005 20:08:10
MichaV
Hallo,
dachte schon, Du hast die Nase voll :o)
Also, Dein Makro, meine Bemerkungen:

Sub semi_setzen_bm_report()
'Komma in Semikolon ersetzen
Dim s$
Dim TMP$
Dim z%, f%
' Text-Datei erstellen. Zeilenweise übertragen durch "TMP"
Open "C:\bm_report\export_files\BM_Report " For Output As #1
***hier wird eine NEUE Datei angelegt***
For z = 1 To ActiveSheet.UsedRange.Rows.Count
For f = 1 To ActiveSheet.UsedRange.Columns.Count
TMP = TMP & CStr(ActiveSheet.Cells(z, f).Text) & ";"
Next f
Print #1, TMP
***hier werden alle beschriebenen Zellen der Tabelle nacheinander mit ; getrennt in die
Datei geschrieben***
TMP = ""
Next z
Close 1
End Sub

Nochmal: Dieses Makro erzeugt eine Semikolongetrennte Textdatei. Eine Umwandlung von Kommas in Semikolons findet hier nicht statt! Aber egal.
Versuch mal, diesen Code beim Erzeugen der CSV- Datei anzuwenden: https://www.herber.de/forum/messages/613198.html
Ändere nur die Zeile Print #d, Join(Werte, vbTab) in Print #d, Join(Werte, ",")
Danach soltest Du eine Kommagetrennte CSV- Datei haben.
Gruß- Micha
Anzeige
DANKE VIELMALS,
19.05.2005 23:54:44
SteffenS
Du hast mir sehr geholfen und jetzt funktioniert auch alles.
LG
Steffen
Bitte, gerne! Danke für Deine Rückmeldung owT
20.05.2005 01:26:54
MichaV

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige