Supportnet / Forum / Tabellenkalkulation
Problem mit Makro-Speichern im CSV-Format
Frage
Hallo zusammen,
ich habe eine Excel-Tabelle, die in A1, A2 und A3 jeweils eine Zahl enthält.
Jetzt speichere ich die Tabelle im Format CSV („Trennzeichen-getrennt“). So weit so gut. Die Zahlen sind weiterhin auf die drei Zellen verteilt.
Jetzt kommt aber mein Problem: Ich möchte die CSV-Datei mit einem Makro aus einer anderen Excel-Datei heraus erstellen und speichern. Die Erstellung des Makros ist kein Problem. Es funktioniert auch zunächst problemlos. Die neue Datei wird angezeigt und gespeichert.
Aber jetzt kommt’s: Wenn ich die Datei schließe und danach wieder öffne, befinden sich alle drei Zahlen in der Zelle A1, durch Kommata getrennt.
[b]Warum?[/b]
Ich verstehe nicht, warum das so ist. Wenn ich die Datei manuell im CSV-Format speichere, funktioniert alles so, wie ich es will: Drei Zahlen in drei Zellen.
Aber wenn ich die Operation mit einem Makro steuere, klappt es nicht.
Könnt ihr mir vielleicht weiterhelfen?
Danke schon mal und Gruß
Heiko1985
P.S.: Die zur Speicherung relevanten Zeilen des Makros lauten:
[code] ActiveWorkbook.SaveAs Filename:= _
"C:\NeueDatei.csv" _
, FileFormat:=xlCSV, CreateBackup:=False
[/code]
Antwort 1 von Arno_Nym
Microsoft's Antwort bei sowas: "It's by design" ;o)
Excel (2003) verwendet beim manuellen Speichern als CSV das System-Trennzeichen aus den Ländereinstellungen (also bei deutsch das Semikolon), jedoch bei Nutzung von VBA-Funktionen das englische CSV-Format, d.h. Komma-getrennt (oft interpretiert als: Comma Separated Values).
Und Komma-getrennte CSVs erkennt dass (deutsche) Excel beim Öffnen wiederrum nicht korrekt :o(
Irgendwo hab ich auch schon VBA-Scripte gesehen, mit denen man das Trennzeichen (Semikolon) selbst definieren kann, find's aber grade nicht... Kannst ja mal selbst noch etwas im I-Net suchen nach "excel vba csv"
Arno
Excel (2003) verwendet beim manuellen Speichern als CSV das System-Trennzeichen aus den Ländereinstellungen (also bei deutsch das Semikolon), jedoch bei Nutzung von VBA-Funktionen das englische CSV-Format, d.h. Komma-getrennt (oft interpretiert als: Comma Separated Values).
Und Komma-getrennte CSVs erkennt dass (deutsche) Excel beim Öffnen wiederrum nicht korrekt :o(
Irgendwo hab ich auch schon VBA-Scripte gesehen, mit denen man das Trennzeichen (Semikolon) selbst definieren kann, find's aber grade nicht... Kannst ja mal selbst noch etwas im I-Net suchen nach "excel vba csv"
Arno
Antwort 2 von Arno_Nym
Ahh, mach mal ein "Local:=True" dran. Dann funktionierts bei Excel2003 mit dem Semikolon.
Wieso bin ich da nich' früher drauf gekommen? :o)
Arno
Wieso bin ich da nich' früher drauf gekommen? :o)
Arno
Antwort 3 von Heiko1985
Danke! Es hat geklappt. Das Makro lautet jetzt:
Aber sehr interessant: Wenn ich die Datei mit
Dann läuft es so, wie ich mir das vorgestellt habe.
ActiveWorkbook.SaveAs Filename:="C:\NeueDatei.csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=TrueAber sehr interessant: Wenn ich die Datei mit
ActiveWindow.Close
schließe, fragt Excel, ob ich die Datei speichern will. Klicke ich jetzt auf Ja, habe ich das gleiche Problem wie zu Anfang beschrieben. Also muss ich entweder auf Nein klicken oder ins Makro ein SaveChanges:=False einbauen.Dann läuft es so, wie ich mir das vorgestellt habe.

