Ich habe von einem Kollegen ein Excelsheet mit folgendem Makro erhalten.
Sheets("Transfer").Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\ADDISON\Schnittstelle Agresso\vw_agltransact.txt", Destination:=Range("$A$1"))
.Name = "agltransact"
.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 = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(14, 19, 26, 29, 14, 14, 4, 4, 18, 18, 13, 24, 154, _
115, 26, 185, 355, 4, 13, 8, 15, 16, 3, 60, 19, 27, 18, 15, 20, 18, 18)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
Hierbei werden aus der txt-Datei Daten eingelesen. Leider kommt es bei manchen Sätzen vor, dass aus einem Betrag, z.B. von 4.96 (Trenner ist ein Punkt) ein Betrag von 356000 wird. Bei anderen Buchungen, die genau so aussehen klappt es wieder. Hängt das am Format?
Die txt-Datei sieht folgendermaßen aus: (erster Satz 400 Euro klappt, 2. Satz 4,96 Euro klappt nicht!)
100000001952 01 6330 400. C1 400. EUR 1 Avdispahic 03/12 0400 2012 201302040 0 0 201203 032012 1 36 20120630391 0. 0. 0SYSDE 0. 0. 0. 27.03.2012MG
100000002056 01 6330 4.96 C1 4.96 EUR 1 Rewe Toilt.Papier 0400 2012 201302040 0 0 201203 032012 0 36 20120630391 0. 0. 0SYSDE 0. 0. 0. 27.03.2012MG
Vielen Dank für eure Hilfe.
Gruß
Michael