|  
                                             Hallo Ralf, 
Zuerst vielen Dank für die Erklärung - ich kann schon Kleinigkeiten in VBA aber vieles ist mir einfach zu steil, Excel selbst ist eher mein Ding. 
Und auch vielen Dank für die Formel, dachte zuerst die Haut super hin, erst beim zweiten hinsehen, und genauer Kotnrolle, jeder Spalte. 
musste ich bemerken, das irgenwo noch ein Haken sein muss. 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   
 'target ist die gerade ausgewählte zelle
  If Target.CountLarge > 1 Then Exit Sub
  If Target.Column = 1 Or Target.Column = 2 Then 'spalte A oder B
      If Target.Row > 1 And Target = "" Then   'ist zelle leer
        'ist Zelle oben drüber nicht leer
        If Target.Offset(-1) <> "" Then formelnschreiben
      End If
  End If
End Sub
 
Sub formelnschreiben()
  Dim arSp, itm, rng As Range, i As Long, bolisformula As Boolean
    Dim stextformula As String
    Dim lrow As Long
  
    'Array mit den zu ersetzenden Spaltennummern
    arSp = Split("P,Y,Z,AA,AC,AD", ",")
 
  lrow = ActiveCell.Row
   
  Application.EnableEvents = False
  On Error GoTo ERRORHANDLING
   
  For Each itm In arSp
     Set rng = Intersect(UsedRange, Columns(itm))
     
     If rng Is Nothing Then Exit Sub
         
    For i = rng.Rows.Count To 1 Step -1
         
        If rng(i, 1).HasFormula Then
            
           stextformula = rng(i, 1).FormulaLocal
           stextformula = Replace(stextformula, CStr(rng(i, 1).Row), CStr(lrow), , 3)
           
          'geänderte Formel in zelle schreiben
           Cells(lrow, itm).FormulaLocal = stextformula
           Exit For
        End If
    Next
         
  Next
ERRORHANDLING:
    Application.EnableEvents = True
     
     
End Sub
Ich habe den Code in 2 Tabellen getestet und jedesmal habe ich in den letzten beiden Spalten Fehler in den Formeln ich habe die Formeln in den Spalten genauestens kontrolliert.
zb.Zeile 1270 ist die Excelformel 
=WENN(WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y1270-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y1270-SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));)))<=0;0;WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y1270-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y1270-SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));)))) 
nach dem Einfügen stimmen nur die letzten beiden Spalten nicht 
Zeile 1271 
=WENN(WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G1271;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y1271-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1271;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1271;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y1271-SVERWEIS(SVERWEIS("*"&LINKS(G1271;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));)))<=0;0;WENN(ISTNV(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));(Y1270-Verrechnungsdaten!$E$2);WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)=0;0;WENN(SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH)>0;(Y1270-SVERWEIS(SVERWEIS("*"&LINKS(G1270;10)&"*";Verrechnungsdaten!A:A;1;FALSCH);Verrechnungsdaten!A:C;2;FALSCH));)))) 
Wie Du hier siehst wird am Anfang noch die Formel richtig eingefügt aber dann nicht mehr, ich hab mal gelesen das VBA nur gewissen Zeichenlängen 
übernehmen kann, trifft das hier zu, denn die anderen Formeln zum einfügen sind auch weit kürzer. 
Ich hatte mal eine Formel die habe ich in 2 Zeile zerlegt, und beim Einfügen dann wieder zusammengesetzt. 
Daher nochmals dein Profiwissen, an was liegt das? Und wie kann man es lösen. 
Schönen Abend Dagmar 
  
     |