Hallo hae folgende Formel die in Excel einwandfrei funktioniert.
=WENN(WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y2-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y2-SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));)))<=0;0;WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y2-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y2-SVERWEIS(SVERWEIS("*"&LINKS(G2;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));))))
Ich kann Sie aber nicht in eine VBA Formel umwandeln.
Gesamter Code
Sub Spalte_ACNEUNEU()
Dim ws As Worksheet
Dim ersteLeereZeileA As Long
Dim ersteLeereZeileAC As Long
Dim ACRange As Range
Dim formulaPart1 As String
Dim formulaPart2 As String
Dim formulaPart3 As String
Dim fullFormula As String
' Arbeitsblatt definieren
Set ws = ThisWorkbook.Sheets("XXX")
' Bestimmt erste leere Zeilen
ersteLeereZeileA = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
ersteLeereZeileAC = ws.Cells(ws.Rows.Count, "AC").End(xlUp).Row + 1
' Bereich definieren
If ersteLeereZeileAC < ersteLeereZeileA Then
Set ACRange = ws.Range("AC" & ersteLeereZeileAC & ":AC" & (ersteLeereZeileA - 1))
' Formel in Teile aufteilen
formulaPart1 = "=IFNA(IF(VLOOKUP(VLOOKUP(""*""&LEFT(G" & ersteLeereZeileAC & _
",10)&""*"",Verrechnungsdaten!A:A,1,FALSE),Verrechnungsdaten!A:C,2,FALSE),"
formulaPart2 = "(Y" & ersteLeereZeileAC & "-Verrechnungsdaten!$E$2),IF(VLOOKUP(VLOOKUP(""*""&LEFT(G" & _
ersteLeereZeileAC & ",10)&""*"",Verrechnungsdaten!A:A,1,FALSE),Verrechnungsdaten!A:C,2,FALSE)=0,0,"
formulaPart3 = "IF(VLOOKUP(VLOOKUP(""*""&LEFT(G" & ersteLeereZeileAC & _
",10)&""*"",Verrechnungsdaten!A:A,1,FALSE),Verrechnungsdaten!A:C,2,FALSE)>0,(Y" & _
ersteLeereZeileAC & "-VLOOKUP(VLOOKUP(""*""&LEFT(G" & ersteLeereZeileAC & _
",10)&""*"",Verrechnungsdaten!A:A,1,FALSE),Verrechnungsdaten!A:C,2,FALSE))))<=0,0))"
' Formel zusammenfügen
fullFormula = formulaPart1 & formulaPart2 & formulaPart3
' Formel in Bereich einfügen
ACRange.Formula = fullFormula
ACRange.NumberFormat = "General"
End If
End Sub
Code hängt immer bei ACRange.Formula = fullFormula
An was liegt das - komme leider selbst nicht mehr weiter, ev. gibt es auch eine andere Möglichkeit die Formel in die Spalte inzufügen.
Vielen Dank schon mal im Voraus.
Monika
|