Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Workbooks.OpenText - Datumsformat

Betrifft: Workbooks.OpenText - Datumsformat von: Rainer
Geschrieben am: 22.01.2008 13:30:56

Liebe XL-ler!

Ich versuche seit geraumer Zeit einen Fehler bei der Umwandlung von Datumsangaben zu finden.

Aus einer SQL-Abfrage wird eine XL-Datei im TXT Format gespeichert. Diese öffne bzw. bearbeite ich mittels VBA, zum Schluss speichere ich die Datei als normale XLS-Datei. Grundsätzlich wird alles richtig gemacht, auch die Pivot-Tabelle etc ist korrekt.
Allerdings muss immer wieder bei der fertigen Datei für Details in der Datentabelle nachgeschaut werden. Hier kann dann nicht nach den Datums-Spalten gefiltert werden, obwohl die Anzeige auf den ersten Blick zwar richtig steht, aber die Werte als Text und nicht als Datum formatiert sind.
Habe schon einiges herumprobiert (auch Formatierung im SQL-Query Analyser). Wenn ich das einlesen "händisch" durchführe und den Makrorecorder mitlaufen lasse, funktioniert das AutoFiltern korrekt. Starte ich den aufgezeichneten Code mit der selben Datei, kann ich nicht mehr filtern. Das Datum wird nicht mehr als solches erkannt, sondern als Text ausgegeben.

Hier der Codeausschnitt, der durch das Aufzeichnen entsteht:

Workbooks.OpenText Filename:= _
"\\servername\..\Datei.xls" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, Tab:=True, FieldInfo:=Array(Array _
(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8 _
, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), _
Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array( _
21, 1), Array(22, 1)), TrailingMinusNumbers:=True

Excel 2003 – aktuellste Patches

Wenn ich eine Datumszelle z.B. mit F2 aktiviere und danach ENTER drücke, wir es korrekt in ein Datum umgewandelt. Dies ist bei 20-30.000 Zeilen und 2 Datumsspalten natürlich ein zusätzliche Aufwand, auch wenn ich es z.B. mit einer Schleife / for each .. durchlaufen lasse. Das muss sich doch beim Einlesen abfangen lassen!

Kennt jemand das Problem?

Danke für eure Hilfe!
Rainer

  

Betrifft: AW: Workbooks.OpenText - Datumsformat von: Renee
Geschrieben am: 22.01.2008 13:36:04

Hi Rainer,

Wenn du per VBA ein Datum in einem Filter setzen willst, dann funktioniert das so (Beispiel Datum in Spalte A):

Sub tiler()
Dim Filterdatum As Date
    Filterdatum = InputBox("Bitte geben Sie ein Datum ein: ")
    Selection.AutoFilter Field:=1, Criteria1:="<=" & Format(Filterdatum, "0")
End Sub



GreetZ Renée


  

Betrifft: AW: Workbooks.OpenText - Datumsformat von: Rainer
Geschrieben am: 22.01.2008 13:40:34

Hallo Renée!

Danke für die schnelle Antwort! Die Datei wird von mir täglich erstellt und auf einem Share für div. Auswertungen zur Verfügung gestellt. Wenn ein User bestimmte Details haben möchte, verwendet er das ganz normale AutoFiltern, um an die gewünschten Daten zu gelangen. Dabei wird das Datumsformat benötigt!

LG
Rainer


  

Betrifft: AW: Workbooks.OpenText - Datumsformat von: Rudi Maintaire
Geschrieben am: 22.01.2008 13:37:11

Hallo,
gib mal unter FieldInfo:= bei der entsprechenden Spalte eine 4 als Datentyp an.

Gruß
Rudi

Eine Kuh macht Muh, viele Kühe machen Mühe


  

Betrifft: Nachfrage von: Rudi Maintaire
Geschrieben am: 22.01.2008 13:39:28

Hallo,
warum öffnest du eine .xls mit Opentext???

Gruß
Rudi

Eine Kuh macht Muh, viele Kühe machen Mühe


  

Betrifft: AW: Workbooks.OpenText - Datumsformat von: IngGi
Geschrieben am: 22.01.2008 13:44:32

Hallo Rainer,

du hast in den Array-Angaben für alle 22 Spalten eine 1 als zweite Zahl stehen. Damit legst du für alle 22 Spalten als Datentyp Text fest. Versuche es für die Datumsspalten einmal mit einer 3. Die steht für den Datentyp Datum mit der Reihenfolge Tag, Monat, Jahr.

Gruß Ingolf


  

Betrifft: Danke! Workbooks.OpenText - Datumsformat von: Rainer
Geschrieben am: 22.01.2008 14:09:35

Lieber Rudi!
Lieber Renée!
Lieber Ingolf!

Danke für eure rasche AntwortInfo! Der Datentyp 4 in "Array(4, 4)" bzw. "Array(5, 4)" war der richtige Hinweis! Interessanterweise hat die zuerst probierte 3 nicht alle Zellen richtig formatiert, ein Teil war richtig, ein Teil noch immer Text ...

Der Vollständigkeit halber noch die Frage von Rudi:
Die SQL-Datei wird als ANSI/Tabstoppgetrennt und gleich mit der Endung ".xls" exportiert. Somit muss ich meines Wissens immer das Workbooks.OpenText verwenden. (so zeigt es auch immer die Aufzeichnung).

Herzlichen Dank! Ihr habt mir wirklich sehr geholfen!
Rainer


 

Beiträge aus den Excel-Beispielen zum Thema "Workbooks.OpenText - Datumsformat"