Sub
Makro2()
Dim
Datei
As
Variant
, Quelle
As
Worksheet, Ziel
As
Worksheet
Dim
lastzei
As
Long
, i
As
Long
, z
As
Long
, k
As
Long
, Firmenname
As
String
Datei = Application.GetOpenFilename(
"Text Files (*.txt), *.txt"
)
If
Datei =
False
Then
Exit
Sub
Set
Quelle = ActiveWorkbook.Worksheets.Add
With
Quelle.QueryTables.Add(Connection:= _
"TEXT;"
& Datei, Destination:=Range(
"A1"
))
.Name =
"textdatei"
.FieldNames =
True
.RowNumbers =
False
.FillAdjacentFormulas =
False
.PreserveFormatting =
True
.RefreshOnFileOpen =
False
.RefreshStyle = xlInsertDeleteCells
.SavePassword =
False
.SaveData =
True
.AdjustColumnWidth =
True
.RefreshPeriod = 0
.TextFilePromptOnRefresh =
False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter =
True
.TextFileTabDelimiter =
False
.TextFileSemicolonDelimiter =
False
.TextFileCommaDelimiter =
False
.TextFileSpaceDelimiter =
True
.Refresh BackgroundQuery:=
False
End
With
Spalten = Array(
"Buchungstag"
,
"VGA"
,
"Betrag"
,
"Wkz"
,
"AG Name"
,
"AG IBAN"
,
"AG BIC"
,
"Status"
,
"Empf Name"
)
Set
Ziel = Worksheets.Add(before:=Sheets(1))
Ziel.Rows(1).Resize(1, UBound(Spalten) + 1) = Spalten
Ziel.Columns(1).NumberFormat =
"dd.mm.yyyy"
Ziel.Columns(3).NumberFormat =
"#,##0.00"
lastzei = Quelle.Cells(Quelle.Rows.Count, 1).
End
(xlUp).Row
z = 1
For
i = 1
To
lastzei
If
Quelle.Cells(i, 1) =
"Buchungstag"
Then
Firmenname =
""
z = z + 1
Ziel.Cells(z, 1) = Quelle.Cells(i, 2)
Ziel.Cells(z, 2) = Quelle.Cells(i, 4)
Ziel.Cells(z, 3) = Quelle.Cells(i, 6)
Ziel.Cells(z, 4) = Quelle.Cells(i, 7)
Ziel.Cells(z, 5) = Quelle.Cells(i, 10)
Ziel.Cells(z, 6) = Quelle.Cells(i + 1, 3)
ElseIf
Quelle.Cells(i, 1) =
"AG"
And
Quelle.Cells(i, 2) =
"IBAN"
Then
Ziel.Cells(z, 6) = Quelle.Cells(i, 3)
Ziel.Cells(z, 7) = Quelle.Cells(i, 6)
Ziel.Cells(z, 8) = Quelle.Cells(i, 8) &
" "
& Quelle.Cells(i, 9)
ElseIf
Quelle.Cells(i, 1) =
"Empf"
And
Quelle.Cells(i, 2) =
"Name"
Then
For
k = 4
To
Quelle.Cells(i, Quelle.Columns.Count).
End
(xlToLeft).Column
Firmenname = Firmenname & Quelle.Cells(i, k) &
" "
Next
k
Ziel.Cells(z, 9) = Left(Firmenname, Len(Firmenname) - 1)
End
If
Next
i
End
Sub