Problem bei ExcelXP, keines bei OO

Hallo Experten,
ich habe da ein Problem mit Excel XP beim Öffnen eine Textdatei (Export aus einer Adressdatei):

Die 12 Datensätze (mit Hexeditor überprüft) enthalten jeweils Namen und Geburtstage.
Die „Namen“ sind immer gleich und in Anführungszeichen.
Die „Geburtstage“ haben das Format „Monatsname Tag, Jahr“, ebenfalls in Anführungszeichen, und unterscheiden sich voneinander nur im Monatsnamen, also

"Januar 17, 1950"
"Februar 17, 1950"
...
"Dezember 17, 1950"

Name und Geburtstag sind durch einen Tabulator (char9) getrennt, die Datensätze mit CR+LF (char13 + char10) abgeschlossen.

Wenn ich diese Datei in OO-calc importiere und die Spalte der Geburtstage mit „Datum(MTJ)“ oder mit „Standard“ formatiere, bekomme ich ein korrektes Ergebnis: 1.Spalte „Name“, 2. Spalte „17.01.1950“.

Importiere ich die Datei in OfficeXP (SP3) und gebe als Datenformat für die 2 Spalte „Datum MTJ“ ein, so bekomme ich für die Monate März, Juni, Juli und September, und nur für diese, das Ergebnis:

September 17, 1950

, formatiert als „Standard“.
Für alle andere Monate ist das Ergebnis

17.Jan 50

, formatiert „TT.MMM JJ“.

Muß ich mit dieser Inkontinsequenz leben???
(Bitte keine Kommentare „XP ist Mist, bleibe bei oder wechsle zu OO“!)

Vorab Gruß und Danke
Fritz

(Das gleiche Ergebnis bekomme ich übrigens auch mit Office97 (SP2).)

Btw.: Wo kann ich euch die Text-Datei hochladen? Der uploadagent nimmt keine *.txt

Probiere mal diesen Rat aus. Da geht es zwar nicht um Datum, aber auch um falsche Zahlenformatierung. Vielleicht hilft es ja:

http://www.supernature-forum.de/tutorials-and-tipps/…

ich habe da ein Problem mit Excel XP beim Öffnen eine
Textdatei (Export aus einer Adressdatei):
Importiere ich die Datei in OfficeXP (SP3) und gebe als
Datenformat für die 2 Spalte „Datum MTJ“ ein, so bekomme ich
für die Monate März, Juni, Juli und September, und nur für
diese, das Ergebnis:

September 17, 1950

, formatiert als
„Standard“.
Für alle andere Monate ist das Ergebnis

17.Jan 50

, formatiert
„TT.MMM JJ“.

Hallo Fritz,

hochladen kannst du mit file upoad, s. FAQ:2606

Un dbeschreib mal genauer was du da bei Benutzerdefiniert einträgst als Format. Schreib also nur Anführngszeichen hin wenn die da auch stehen.

Übrigens kann ich dein Problem nicht nachvollziehen.
Drücke mal Alt+F11, Einfügen Modul, ändere den Pfad K:\ im Code an zwei Stellen ab nach Ordner nach Wunsch.
Editor schließen, Alt+F8, Prozedur Test ausführen lassen…

Option Explicit

Sub test()
Dim M As Integer, FF, Satz As String
FF = FreeFile
Open "K:\Datumtest.txt" For Output As #FF
For M = 1 To 12
 Satz = Chr(34) & "Name" & M & Chr(34) & Chr(9) & Chr(34)
 Satz = Satz & Format(DateSerial(1950, M, 17), "MMMM DD, YYYY") & Chr(34)
 Satz = Satz & Chr(13) & Chr(10) 'vbCrLf
 Print #FF, Satz
Next M
Close
Workbooks.Open "K:\Datumtest.txt"
End Sub

Gruß
Reinhard

Hallo Reinhard,
vorab erst mal die Datei
http://www.file-upload.net/download-3750758/testdate…

Gruß Fritz

vorab erst mal die Datei
http://www.file-upload.net/download-3750758/testdate…

Hallo Fritz,

Fehler ist mir nicht nachbaubar (Excel 2000):

http://www.uploadagent.de/show-177835-1316682332.html

Gruß
Reinhard

1 „Gefällt mir“

Hallo Reinhard,
das Ergebnis von test()
http://www.pic-upload.de/view-11460915/Testergebnis…

und nun??

Gruß Fritz

das Ergebnis von test()
http://www.pic-upload.de/view-11460915/Testergebnis…
und nun??

Hallo Fritz,

und nu? K.A., nu weiß ich grad nix mehr :frowning:
Mein Ergebnis sieht so aus:
http://www.pic-upload.de/view-11460961/kwdatentest.j…

Und am Format habe ich nichts verändert, es war/ist von Excel aus Standard.

Gruß
Reinhard

das Ergebnis von test()
http://www.pic-upload.de/view-11460915/Testergebnis…
und nun??

Hallo Fritz,

anscheinend hängt es irgendwie mit deutsch englisch zusammen.
January erkannt excel als januar, February auch aber März und march nicht und December und Dezember sind dauch für Excel unterschiedlich.
Hast du engl. Excel oder englisches Windows o.ä.?

Tabellenblatt: K:\[Datumtest.txt]!Datumtest
 │ E │ F │
───┼───┼──────────────────────────┤
 1 │ x │ 1. January - Januar │
───┼───┼──────────────────────────┤
 2 │ x │ 2. February - Februar │
───┼───┼──────────────────────────┤
 3 │ │ 3. March - März │
───┼───┼──────────────────────────┤
 4 │ x │ 4. April - April │
───┼───┼──────────────────────────┤
 5 │ │ 5. May - Mai │
───┼───┼──────────────────────────┤
 6 │ │ 6. June - Juni │
───┼───┼──────────────────────────┤
 7 │ │ 7. July - Juli │
───┼───┼──────────────────────────┤
 8 │ x │ 8. August - August │
───┼───┼──────────────────────────┤
 9 │ x │ 9. September - September │
───┼───┼──────────────────────────┤
10 │ │ 10. October - Oktober │
───┼───┼──────────────────────────┤
11 │ x │ 11. November - November │
───┼───┼──────────────────────────┤
12 │ │ 12. December - Dezember │
───┴───┴──────────────────────────┘
E1:F12
haben das Zahlenformat: Standard

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Hallo Fritz,

die Behandlung von Datumsangaben beim Datenimport und an anderen Stellen ist in Excel um es vorsichtig zu formulieren suboptimal bis bescheiden. Es ist kein Problem des Betriebssystems sondern von Excel. Ich hab jetzt mal unter Excel 2007 verschiedene Varianten importiert (Deutsch/Englisch).

Unter Deutschen Betriebssystem-Einstellungen und Excel-Deutsch funktioniert bei Angabe des Monats als Langtext nur die Reihenfolge Tag Monat Jahr beim Import aus der Textdatei. Dabei ist ein Komma im Datum absolutes Gift für den Import. Es tritt dabei die von dir beobachte Merkwürdigkeit auf, dass die Monate März-Juni-Juli-September nicht in ein Exceldatum konvertiert werden.
Als Trennzeichen zwischen TAG-MONAT-JAHR funktionieren:
. - / Leerzeichen und ohne Trennzeichen.

Wenn du die Textdatei nur in dem Aufbau generieren kannst bzw. bekommst, dann bleibt die nichts anderes über als mit folgender Formel die Datumsangaben nach dem Import umzuwandeln:

=DATWERT(TEIL(B1;SUCHEN(" ";B1)+1;SUCHEN(", ";B1)-SUCHEN(" ";B1)-1)&TEIL(B1;1;SUCHEN(" ";B1)-1) & RECHTS(B1;4))

Gruß
Franz

@ Reinhard und Franz

Reinhard schrieb:
Und beschreib mal genauer was du da bei Benutzerdefiniert
einträgst als Format.

Hallo Reinhard,
ich hab der Vollständigkeit halber mal eine Bilderserie gemacht:
http://www.pic-upload.de/view-11466582/Bild.jpg.html

Wie Franz schreibt, ist es wohl ein Bug von Excel, den man kennen und den man irgendwie umgehen muß.
Was mich doch noch interessieren würde:
Bei Deinem Excel2000 trat der Fehler nicht auf, wie ist es bei Excel2003 bzw. 2007 bzw. 2010?
Ich erinnere mich schwach, das mein ExcelXP (Excel2002) relativ schnell von Excel2003 abgelöst wurde. Könnte es also ein Bug sein, der speziell Excel2002 betrifft?

Gruß Fritz

Btw. jeweils eines eurer Sternchen ist von mir - Danke!

Hallo,

Und beschreib mal genauer was du da bei Benutzerdefiniert
einträgst als Format.

ich hab der Vollständigkeit halber mal eine Bilderserie
gemacht:
http://www.pic-upload.de/view-11466582/Bild.jpg.html

Bei Deinem Excel2000 trat der Fehler nicht auf, wie ist es bei
Excel2003 bzw. 2007 bzw. 2010?

ich habe es nun auch in Excel 2007 Home & Student getestet. Bei mir passiert das nicht. Ich habe mich genau an deine Bilderserie gehalten. Nach Textkonvertierung hat Spalte B das Format Standard.

Ich erinnere mich schwach, das mein ExcelXP (Excel2002)
relativ schnell von Excel2003 abgelöst wurde. Könnte es also
ein Bug sein, der speziell Excel2002 betrifft?

Ich hab weder 2002 noch 2003.

Ohne viel Hoffnung daß dies was bringt, zeichne mal ein Makro auf während du die txt-Datei öffnest und zeige hier den Code.

Willst du eigentlich mit den Datümern in B rechnen, z.B. das Alter berechnen oder langt es wenn es da als Text steht?
Beides müßte mit Vba zu machen sein.

Welches Excel hast du denn nun, 2002 oder 2003 oder beide?

Gruß
Reinhard

Vba Lösungsansätze
Hallo Fritz,

nachfolgend zwei Codes die bei mir funktionieren.
Je nach Code hats du das Ergebnis in B als Text formatiert oder als Datum: MMMMM TT, JJJJ

Läßt man in der Prozedur „OeffnenAlsText“ die Codezeile
Columns(2).NumberFormat = „@“
weg so passiert das was du beschreibst.

Sub OeffnenAlsDatum()
Dim Satz As String, FF As Long, Zei As Long, S, S2
FF = FreeFile
Open "K:\testdaten.txt" For Input As #FF
Worksheets.Add after:=Worksheets(Worksheets.Count)
Columns(2).NumberFormat = "MMMM DD, YYYY"
While Not EOF(FF)
 Zei = Zei + 1
 Line Input #FF, Satz
 S = Split(Satz, Chr(9))
 S2 = Split(S(1))
 Cells(Zei, 1).Value = S(0)
 Cells(Zei, 2).Value = CDate(Replace(S2(1), ",", ".") & S2(0) & " " & S2(2))
Wend
Close #FF
Columns(2).AutoFit
End Sub

Sub OeffnenAlsText()
Dim Satz As String, FF As Long, Zei As Long, S
FF = FreeFile
Open "K:\testdaten.txt" For Input As #FF
Worksheets.Add after:=Worksheets(Worksheets.Count)
Columns(2).NumberFormat = "@"
While Not EOF(FF)
 Zei = Zei + 1
 Line Input #FF, Satz
 S = Split(Satz, Chr(9))
 Cells(Zei, 1).Value = S(0)
 Cells(Zei, 2).Value = S(1)
Wend
Close #FF
Columns(2).AutoFit
End Sub

Gruß
Reinhard

@ Reinhard

Ohne viel Hoffnung daß dies was bringt, zeichne mal ein Makro
auf während du die txt-Datei öffnest und zeige hier den Code.

Willst du eigentlich mit den Datümern in B rechnen, z.B. das
Alter berechnen oder langt es wenn es da als Text steht?
Beides müßte mit Vba zu machen sein.

Welches Excel hast du denn nun, 2002 oder 2003 oder beide?

Hallo Reinhard,
ich habe Excel 2002.
Da die ganze Aktion für mich einmalig war und abgeschlossen ist (ich habe dank OO einen korekten Datensatz), will ich diesem Problem nicht noch weitere Zeit opfern und nur im Hinterkopf behalten, dass es da ein Problem gibt.

Nochmals Danke für Deine Mühe!
Gruß Fritz

Btw.
Ich wiederhole mich gern, wenn ich Microsoft & Co. als größte ABM (Arbeitsbeschaffungsmaßnahme) bezeichne, die jemals erfunden wurde.