graz4u

DeutschEnglish

Excel VBA TextExport: Problme beim Datumsformat

Problem: Eine Excel Tabelle in der unter anderem auch Spalten mit Datumsfeldern vorkommen soll in ein Texfile exportiert werden - im Textfile wird das Datum aber in einem falschen Format angezeigt (Englisch)

Datum in Excel: (Datumsformat: deutsch, standard)

Nach dem Export in eine Textdatei über das Menü, oder auch über folgende VBA-Funktion erhalten wir in der Textdate ein falsches Datumsformat

ActiveWorkbook.SaveAs Filename:=strSaveAsText, FileFormat:=xlUnicodeText, CreateBackup:=False

8/31/2011    LV    1000    9/04/2011    4    EUR    INTERN
8/31/2011    LV    1000    9/06/2011    4    EUR    INTERN

Dieses Datumsformat wird dann aber von dem Programm welches die Daten wieder importiert nicht verstanden - daher wäre eine deutsche Formatierung des Datums beim speichern erwünscht.

Lösung: über den Parameter "Locale=true" wird erreicht, dass Excel die Datumseinstellung des aktuellen Desktops (Systemsteuerung) verwendet

ActiveWorkbook.SaveAs Filename:=strSaveAsText, FileFormat:=xlUnicodeText, CreateBackup:=False, Local:=True

31.08.2011    LV    1000    04.09.2011    4    EUR    INTERN
31.08.2011    LV    1000    06.09.2011    4    EUR    INTERN

Anmerkung: Grundsätzlich ist diese Lösung nicht ganz zufriedenstellend, denn wenn der User beim Exportieren eine andere Systemeinstellung für die Sprache wählt, wird sich das Ausgabeformat des Textes wieder ändern und es wird wohl beim Import in das Folgeprogramm zu einem Fehler kommen. Daher wäre es wünschenswert, wenn nicht nur "Local=True" gesetzt werden kann, sondern gleich ein fixes Format für den Output gewählt werden kann.
Es gibt tatsächlich auch den Paramter "TextCodepage" über den die Ausgabesprache fix festgelegt werden könnte, dieser Parameter wird jedoch im speziellen in Excel ignoriert.
Will man dieses Problem professionell lösen, so müsste man den Export mit einem weiteren VBA-Programm entweder mittels format() beeinflussen und z.B. Zeilen- und Spaltenweise exportieren, oder evtl. das ganze Workbook vor dem Export per VBA im richtigen Format in eine neue Seite einfügen und dabei das Datum in einen Text umwandeln - dach wird der Export auch ganz ohne Parameter immer richtig gelingen!

Betrifft: Excel 2000, Excel 2003, Excel 2007, Excel 2010