|  
                                             so funktioniert das nicht. Deine Formel war doch sehr viel kürzer. Ich weis das du(als Monika) wegen deiner übelst langen Formel schon hier im Forum gefragt hast. Mein Code ersetzte nur die ersten 3 Zeilennummern in der Formel. Das habe ich aber auch schon erwähnt. Grund ist, das weiter hinten in der Verweisformel die Spaltennummer angegeben ist und die auch als Zahl sonst ersetzt werden könnte.  
Also mit de Zeichenlängen bin ich überfragt. Ich bin ja auch kein Programmierprofi und muß das auch nicht wissen. 
Hier mal eine andere Variante. 
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
         Application.EnableEvents = False
         formelnschreiben
         Application.Goto Target
         Application.EnableEvents = True
        End If
      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("G,H,I,K,M,O", ",")
   lrow = ActiveCell.Row
   On Error GoTo ERRORHANDLING
   Application.ScreenUpdating = False
  For Each itm In arSp
     Set rng = Intersect(UsedRange, Columns(itm))
    If Not rng Is Nothing Then
    For i = rng.Rows.Count To 1 Step -1
        If rng(i, 1).HasFormula Then
          rng(i, 1).Copy
          Cells(lrow, rng.Column).PasteSpecial 11
          Application.CutCopyMode = False
          Exit For
        End If
    Next
    End If
  Next
 
ERRORHANDLING:
    Application.ScreenUpdating = True
    
End Sub
  
  
     |