Textimport in Excel

  • #1
J

Jenkins

Neues Mitglied
Themenersteller
Dabei seit
27.02.2005
Beiträge
4
Reaktionspunkte
0
Hallo,

Ich habe eine frage zum Textimport bei Excel. In meiner ersten Spalte stehten Werte im Format->DD.MM.JJ hh.mm.ss'. Importiere ich dies über das Menü Öffnen werden die Werte im Datum/Zeit-Format übernommen. Öffne ich die Datei mittels VBA mit dem Befehl Workbooks.OpenText, dann werden die Werte nicht als Datum/Zeit erkannt, sondern als String.

Hat mir jemand einen Tipp, wie die Werte mittels VBA auch als Datum/Zeit erkannt werden?

Bsp. unter:

Gruss Jenkins
 
  • #2
Und wenn Du über Werte Einfügen einkopierst?
gruss clasaf
 
  • #3
Hallo Jenkins,

mit folgender Erweiterung sollte es klappen:
Code:
Sub xxx()
  Workbooks.OpenText _
    FileName:=c:\download\versuch.txt, _
    FieldInfo:=Array(Array(1, 4), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2))

'Für jede Spalte ein Array - hier 5
'1. Parameter gibt die Spaltennummer an
'2. Parameter die Verarbeitung beim Import

'mögliche Werte für 2. Parameter
'1 Standard
'2 Text
'3 Datum im Format MTJ
'4 Datum im Format TMJ
'5 Datum im Format JMT
'6 Datum im Format MJT
'7 Datum im Format TJM
'8 Datum im Format JTM
'9 Überspringe die Spalte

End Sub

Gruß Matjes  :)
 
  • #4
@Matjes
Klappt das auch, wenn er in einer Spalte/Zelle Datum und Uhrzeit einfügt?. So habe ich das eigentlich verstanden. Würde da Text klappen?
gruss clasaf
 
  • #5
Vielen Dank für die Antworten. Leider aber funktioniert FieldInfo:=Array(Array(1, 4), auch nicht. Interessant ist ja, dass es manuell über Datei Öffnen funktioniert. Nur mittels VBA will es nicht..
 
  • #6
Hi Jenkins,

also wenn ich den Text aus deinem Link in eine Textdatei versuch.txt kopiere und diese mit oben genanntem Makro xxx öffne, dann haben die Datumszellen der ersten Spalte das benutzerdefinierte Format TT.MM.JJJJ hh:mm. (entspricht DD.MM.JJ hh:mm).
Das ganze unter Win98, Excel97 SR-2

Was sind denn für Trennzeichen zwischen den Spalten in der Orginal-Datei.
Leerzeichen ode Tabs ?

Welche Ländereinstellungen hast du bei Datum.
Meine kurzesDatum:TT.MM.JJJJ , Datumstrennzeichen: Punkt

Welche Excel-Version und welches Betriebssystem benutzt Du  ?

Gruß Matjes  :)
 
  • #7
Hallo Jenkins,

da es öfters mit der Import-Funktion unergründliche Schwierigkeiten gibt, kier die zweite Methode.

Du importierst alles als Text (gibt nie Schwierigkeiten  ;D ) und formatierst anschließend die Spalte, so wie Du sie benötigst.

Gruß Matjes  :)

Code:
Sub xxx()
  Dim x As Long, d_date As Date
 ->Alls als Text importieren
  Workbooks.OpenText _
   FileName:=c:\download\versuch.txt, _
   FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2))
   'Datumsspalte as DD.MM.YY hh:mm:ss formatieren
   x = 7
   Do While ActiveSheet.Cells(x, 1).Value <> 
    d_date = ActiveSheet.Cells(x, 1).Value
    ActiveSheet.Cells(x, 1).NumberFormat = DD.MM.YY hh:mm:ss
    ActiveSheet.Cells(x, 1).Value = d_date
    x = x + 1
   Loop
  ActiveSheet.Columns(1).AutoFit

End Sub
 
  • #8
Du glaubst es nicht, aber es funktioniert immer noch nicht.. :'( Ich muss in die Zelle und F2 und anschliessend Enter drücken und dann wird es als Datum/Zeit erkannt. Dies ist ja auch zu erkennen, dass es von rechtsbündig zu linksbündg wechselt. Kann man dies auch programmieren?

Gruss und Danke für Deine Hilfe
Jenkins
 
  • #9
Habe einen Tipp bekommen.. über Daten/Externe Daten importieren geht es tatsächlich!

Das sieht dann so aus:
***********
With ActiveSheet.QueryTables.Add(Connection:= _
TEXT; & gvDummy _
, Destination:=Range(A3))
.Name = textimport
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
***********

Vielen Dank und Gruss
Jenkins
 
Thema:

Textimport in Excel

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben