AW: Öffnen Textdatei Datumsformat
05.09.2013 11:26:23
fcs
Hallo Florian,
wenn der Parameter Local:=True beim Öffnen einer Textdatei nicht zum Erfolg führt, dann muss man genauer spezifizieren, wie Excel die Inhalte von Spalten oder auch andere Parameter verarbeiten soll.
Dies erfolgt für die Spalten über den Parameter FieldInfo.
Nachfolgend ein Beispiel für die Textdatei und das zugehörige Makro zum Öffnen.
Gruß
Franz
Feld01 Datum US Datum ISO Datum DE Feld04 Feld05 Feld06
1.1 01/01/2013 2013-01-01 01.01.2013 123 3.111,4 20%
2.2 11/03/2013 2013-11-03 03.11.2013 124 -302,4 30%
1.12 09/12/2013 2013-09-12 12.09.2013 125- -3.123.456 40%
11.9 04/12/2013 2013-04-12 12.04.2013 126 3,6 50%
Sub Open_TextFile_DE()
Dim varDateiName As Variant, arrFieldInfo() As Long, intSpalte As Integer
varDateiName = Application.GetOpenFilename(Filefilter:="Textfile (*.txt),*.txt", _
Title:="Bitte Textdatei mit Daten auswählen")
If varDateiName = False Then Exit Sub
intSpalte = 6 'Anzahl Spalten in Textdatei - sind mehr Spalten enthalten, dann werden _
diese als Standard importiert.
ReDim arrFieldInfo(1 To intSpalte, 1 To 2)
'Erstellung des FieldInfo-Arrays für die Spaltenformate
For intSpalte = 1 To UBound(arrFieldInfo, 1)
arrFieldInfo(intSpalte, 1) = intSpalte
Select Case intSpalte
Case 1
arrFieldInfo(intSpalte, 2) = 2 'Import als Text
Case 2
arrFieldInfo(intSpalte, 2) = 3 'Datum MTJ, z.B. US MM/TT/JJJJ
Case 4
arrFieldInfo(intSpalte, 2) = 4 'Datum TMJ, z.B. DE TT.MM.JJJJ
Case 3
arrFieldInfo(intSpalte, 2) = 5 'Datum JMT, z.B. ISO JJJJ-MM-TT
Case 999
arrFieldInfo(intSpalte, 2) = 9 'Spalte nicht importieren
Case Else 'Import als Standard - Excel für Konversionen automatisch durch
arrFieldInfo(intSpalte, 2) = 1 'Import als Standard - Excel für Konversionen _
automatisch durch
End Select
Next intSpalte
Application.Workbooks.OpenText Filename:=varDateiName, Origin:=xlWindows, Startrow:=1, _
DataType:=xlDelimited, Textqualifier:=xlTextQualifierDoubleQuote, _
Consecutivedelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, Fieldinfo:=arrFieldInfo, _
DecimalSeparator:=",", ThousandsSeparator:=".", Trailingminusnumbers:=True
End Sub
Bild in deutschem Excel nach dem Import:
Feld01 Datum US Datum ISO Datum DE Feld04 Feld05 Feld06
1.1 01.01.2013 01.01.2013 01.01.2013 123 3.111,40 20%
2.2 03.11.2013 03.11.2013 03.11.2013 124 -302,4 30%
1.12 12.09.2013 12.09.2013 12.09.2013 -125 -3.123.456 40%
11.9 12.04.2013 12.04.2013 12.04.2013 126 3,6 50%