Ich habe mir eine Exceltabelle erstellt.
In die wird zuerst die Daten einer CSV-Datei eingelesen. Das Tut.
In einem weiteren Schritt werden die Zahlungspflichtigen/-empfänger auf eine gleiche Schreibweise gebracht. Das Tut.
Nun will ich den Verwendungszweck automatisch, weitgehenst bereinigen.
Dazu habe ich folgende Formel gemacht:
=WENN(NICHT(ISTFEHLER(SUCHEN(";";F6)));RECHTS(F6;LÄNGE(F6)-FINDEN(";";F6)); WENN(D6="DE12600501010002691008";VERKETTEN(TEXT(A6;"MMMM");" ";"AB5380885 B27863919"); WENN(C6="DT. KOMITEE FUER UNICEF";VERKETTEN("Spende";" ";(TEXT(A6;"MMMM")));WENN(E6=60090800; "Barabhebung";WENN(D6=9422080;"Einzahlung";WENN(NICHT(ISTFEHLER(SUCHEN("EUR";F6)));LINKS(F6; FINDEN(" EUR";F6));F6))))))
Diese funktioniert bei jeder Zeile in die ich nachher kopiere.
Ich habe nun das ganze als Makro aufgezeichnet.
Das Ergebnis:
Columns("F:F").Select
Selection.Replace What:="398175", Replacement:="398175;", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("G8").Select
ActiveCell.FormulaR1C1 = _
"=IF(NOT(ISERROR(SEARCH("";"",RC[-1]))),RIGHT(RC[-1],LEN(RC[-1])-FIND("";"",RC[-1])),IF(RC[-3]=""DE12600501010002691008"",CONCATENATE(TEXT(RC[-6],""MMMM""),"" "",""AB5380885 B27863919""),IF(RC[-4]=""Unicef"",CONCATENATE(""Spende"","" "",(TEXT(RC[-6],""MMMM""))),IF(RC[-2]="60090800",""Barabhebung"",IF(RC[-3]="9422080",""Einzahlung"",IF(NOT(ISERROR(SEARCH(""EUR"",RC[-1])))" & _
"[-1],FIND("" EUR"",RC[-1])),RC[-1]))))))"
Range("G8").Select
Selection.AutoFill Destination:=Range("G8:G207"), Type:=xlFillDefault
Range("G8:G207").Select
Selection.Cut
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
Selection.Cut
Range("G7").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Verwendungszweck"
Columns("G:G").Select
Selection.Copy
Columns("F:F").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("G:G").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("G7").Select
ActiveCell.FormulaR1C1 = "Kategorie"
Range("G8").Select
End Sub
Nun macht er bei der Formel ActiveCell.FormulaR1C1 dann einen Debuggenfehler.
Woran liegt das?
Oder müsste ich das ganze eh in VBA lösen?
Danke schon mal für eure hilfe