Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

per VBA Text Datei öffnen, Probleme mit Datum

50 views
Skip to first unread message

sabin...@web.de

unread,
Jun 2, 2006, 4:19:14 AM6/2/06
to
Hi liebe Excelspezialisten,
mich ärgert Excel gerade wieder maßlos. Ich habe einen Befehl
aufgezeichnet, der mir eine Textdatei öffnet, nach dem Aufzeichnen
wird die Spalte (3!) auch als Datum angezeigt. Lasse ich aber das
aufgezeichnete Makro laufen ist wird diese Spalte immer als Text
dargestellt.

Warum?

Code:
Workbooks.OpenText Filename:= _
"D:\Auswertung\Datei1.txt", Origin:=437 _
, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1),
Array(2, 1), _
Array(3, 4), Array(4, 1), Array(5, 1), Array(6, 1), Array(7,
1), Array(8, 1), Array(9, 1), _
Array(10, 1)), TrailingMinusNumbers:=True

Ich arbeite mit EXCEL 2003!

Danke
Sabine

Reiner Wolff

unread,
Jun 3, 2006, 5:09:23 AM6/3/06
to
Moin sabine,

*sabin...@web.de* schrieb:

> mich ärgert Excel gerade wieder maßlos. Ich habe einen Befehl
> aufgezeichnet, der mir eine Textdatei öffnet, nach dem Aufzeichnen
> wird die Spalte (3!) auch als Datum angezeigt. Lasse ich aber das
> aufgezeichnete Makro laufen ist wird diese Spalte immer als Text
> dargestellt.
> Warum?

Das habe ich leider auch nicht herausgefunden.

> Code:
> Workbooks.OpenText Filename:= _
> "D:\Auswertung\Datei1.txt", Origin:=437 _
> , StartRow:=1, DataType:=xlDelimited,
> TextQualifier:=xlDoubleQuote, _
> ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
> Comma:=False _
> , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1),
> Array(2, 1), _
> Array(3, 4),

^^^^^^^^^^^^
Dieser Eintrag sollte eigentlich dafür sorgen, dass die dritte Spalte als
Datum im Format TagMonatJahr interpretiert wird.

Willst Du denn mit der ganzen Aktion wirklich erreichen, dass einfach nur
die Textdatei irgendwo geöffnet ist oder soll mit den enthaltenen Daten
danach auch noch mehr geschehen?

Ich würde eine Textdatei idR direkt in VBA einlesen und auch darin weiter
verarbeiten. Falls das auch etwas für Dich wäre, hier ein paar Links zum
Thema:
Einlesen einer Datei:
http://www.vb-tec.de/readfile.htm

Danach erhälst Du mit
Dim strInhalt As String
strInhalt = ReadFile("D:\Auswertung\Datei1.txt")

den gesamten Dateiinhalt in der Variablen.

Vielleicht hilft Dir der Gedankenansatz ja weiter.
Ansonsten kannst Du sicherlich auch nachträglich das Datumsformat für die
Spalte noch per VBA einstellen.

Greetinx aus Kiel
Reiner
--
Treffen sich ein Kuhfladen und ein MS-DOS. Sagt das MS-DOS:
"Hallo, ich bin ein Betriebssystem, was bist'n du?".
Darauf der Kuhfladen:
"Wenn du'n Betriebssystem bist, bin ich 'ne Pizza!"

ThomasAausB

unread,
Jun 6, 2006, 4:19:01 AM6/6/06
to
Hallo Sabine,
ich hatte auch Probleme mit der workbooks.open-Methode und gute Erfahrungen
mit Query-Table gemacht. Dazu reserviere ich ein Tabellenblatt für den
Datenimport (Importtabelle), den Programmtext siehst du hier:

Set wsq = ThisWorkbook.Worksheets("Importtabelle")
Set fs = New FileSystemObject
ZuImportierendeDatei = Application.GetOpenFilename _
(FileFilter:="Textdateien (*.csv), *.csv", _
Title:="Wählen Sie eine Datei zum Import:")
If ZuImportierendeDatei = "" Then Exit Sub
ZuImportierendeDatei = fs.Getfilename(ZuImportierendeDatei)
If Right(ZuImportierendeDatei, 3) <> "csv" _
And Right(ZuImportierendeDatei, 3) <> "CSV" Then
Exit Sub
End If
wsq.Cells.Clear
wsq.Cells.QueryTable.Delete
Set qt = wsq.QueryTables.Add _
(Connection:="Text;" _
+ ZuImportierendeDatei, _
Destination:=wsq.[A1])
With qt
.Name = "tempcsv"
.FieldNames = True
.RowNumbers = False
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMSDOS
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.Refresh BackgroundQuery:=False
End With

--
Thomas

0 new messages