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

VBA: keine länderspez. Formate beim CSV-Speichern

VBA: keine länderspez. Formate beim CSV-Speichern
12.07.2005 18:16:17
RF
Hallo Forum,
komische Sache.
Welche Hintergrundroutinen werden beim manuellen Speichern ausgeführt, die beim "SaveAs"-Befehl nicht angestoßen werden?
Problem:
Zellinhalt=123456,789
a) ich speichere manuell als CSV - kein Problem: 123456,789 steht in CSV-Datei
b) ich speichere per VBA mit SaveAs-Methode, plötzlich erhalte ich 123456.789 Offensichtlich werden gemäß englischer Sprach-Voreinstellung Punkt/Komma ausgetauscht. - Wie verhindere ich das?
Für Datumswerte gilt dasselbe:
Aus [12.07.2005] wird [7/12/2005]
Ich habe schon versucht beim SaveAs den Textcodepage-Parameter zu setzen, jedoch ohne Erfolg.
Wer weiß hier weiter?
Ich möchte nur exakt dasselbe per VBA durchführen, was auch beim manuellen Speichern geschieht. (SendKeys oder Menübefehl-Aufrufe sind keine Lösung!)
Danke für´s Helfen!
RF

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 20:15:20
Ramses
Hallo
probiers mal so
ThisWorkbook.SaveAs "C:\Demo.csv", xlCSVWindows, local:=True
Gruss Rainer
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 20:29:24
RF
Hallo Rainer,
fantastisch, das ist die Lösung!
Leider gibt´s diesen Parameter erst seit Excel 2002.
Mein Problem besteht damit allerdings weiter, da ich eine versionsunabhängige Lösung suche ab v.97.
Da ich in Ex2000 getestet habe, ist mir dieser Param auch nicht aufgefallen.
Weißt du vielleicht noch eine andere Lösung?
Trotzdem DANKE!
RF
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 20:47:19
Ramses
Hallo
Meinst du "Local" ?
Ich dachte das gäbe es schon länger, ansonsten mal als FileFormat
xlCSV
verwenden.
Gruss Rainer
Anzeige
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 20:54:42
RF
Hallo Rainer,
danke für dein Engagement.
Genau diesen FileFormat-Parameter habe ich bisher auch gesetzt.
Die Anweisung lautete wie folgt
ActiveWorkbook.SaveAs Filename:=Replace(ActiveWorkbook.FullName, ".xls", ".csv"), FileFormat:=xlCSV
Leider gibts den Local-Paramter noch nicht - siehe Definitionen unten.
Auszug aus der Ex97/2000-Hilfe:
Ausdruck.SaveAs(Filename, FileFormat, Password, WriteResPassword,
ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
Auszug aus der Ex02/03-Hilfe:
Ausdruck.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
Liebe Grüße,
RF
Anzeige
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 21:03:15
Ramses
Hallo
Wenn es keine Datenbanken mit 65000 Zeilen und 256 Spalten sind, würde es sich anbieten, die CSV Datei selbst zu erstellen.
Mit einer Schleife Zelle für Zelle abarbeiten und den String selbst zusammenbauen.
Gruss Rainer
AW: VBA: keine länderspez. Formate beim CSV-Speich
12.07.2005 21:14:12
RF
Hallo Rainer,
hast ja recht. Das habe ich auch schon überlegt, aber so einfach ist das gar nicht, wennst du´s allgemein gültig machen willst.
Denn da musst du zig Fallunterscheidungen durchspielen.
Zwar kriegt man die die länderspezifischen Systemsteuerungs-Einstellungen relativ leicht via Application.International(zB: xlGeneralFormatName) raus, aber man muss sich um viele Dinge selbst kümmern:
* Länder- und regionale Einstellungen
* Währung
* Datum und Uhrzeit
* Maßeinheitensysteme
* Trennzeichen
bei Interesse siehe Hilfe "mk:@MSITStore:C:\Programme\OfficeXP\Office10\1031\VBAXL10.CHM::/html/xlproInternational.htm"
Dazu kommt noch, dass ich auch benutzerdefinierte Formate beachten müsste.
Denn eine Zahl [123456,789] wird in der CSV-Datei als
...;123456,789;...
dargestellt
wenn Sie allerdings mit einem benutzerdefinierten Format zB. "#.##0,000" hinterlegt ist, muss sie als
...;"123456,789";...
ausgegeben werden.
Du siehst also, man kommt in Teufels Küche und aus einem 1-Zeiler wird ein 5 Stunden-Projekt - und das wollte ich auf alle Fäller verhindern *grins*
Danke jedenfalls!
LG,
RF
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige