Boah, was ist denn das für ein Monstrum? Das geht doch sicher auch einfacher. Ich wüsste allerdings auch grad nicht wie. Aber was mir auf anhieb auffällt ist, dass deine VBA-Formel nicht der oben angegebenen entspricht. Diese beginnt mit Wenn(Wenn(IstNV(, Deine VBA-Formel beginnt mit IstNV(WENN( Das kann ja nicht klappen. Abgesehen davon sind sicher noch Klammern falsch.
In VBA hat man zumindest den Vorteil, dass man sich wiederholende Teile in Variablen ablegen kann. Damit kannst du die Länge deiner Formel erheblich reduzieren. Wenn du den Teil VLookup(Vlookup...)) in eine Variable suchen legst, hast du schon mal viel gespart:
suchen = "VLOOKUP(VLOOKUP(""*""&LEFT(G" & ersteLeereZeileAC & ",10)&""*"",Verrechnungsdaten!A:A,1,FALSE),Verrechnungsdaten!A:C,2,FALSE)"
Anschließend brauchst du nur noch die Variable in deine Formel einbauen, wodurch diese wesentlich übersichtlicher wird. Ich hab dir das mal bunt dargestellt.
Formula = "=IF(IF(ISNA(" & suchen & "),(Y2-Verrechnungsdaten!$E$2),IF(" & suchen & "=0,0,IF(" & suchen & ">0,(Y2-" & suchen & "),)))<=0,0,IF(ISNA(" & suchen & "),(Y2-Verrechnungsdaten!$E$2),IF(" & suchen & "=0,0,IF(" & suchen & ">0,(Y2-" & suchen & "),))))"
bei den beiden sehr groß gezeigten schließenden Klammern fehlt der Sonst-Teil der IF-Formel, hier solltest du dir noch was ausdenken, sonst wird FALSCH zurückgegeben.
Gruß Mr. K.
|