Eine Familie von Microsoft-Tabellenkalkulationsprogrammen mit Tools zum Analysieren, Darstellen und Vermitteln von Daten.
Hallo Michael,
dann will ich Dir mal das Gegenstück zeigen was als Resultat das gleiche macht.
Andreas.
Sub Test()
Dim Jahr As Range, Was As Range, Dest As Range
Dim Formel As String
'Bei sowas kann eine Menge Murks passieren, daher:
On Error GoTo Errorhandler
'Wo ist das Jahr?
Set Jahr = Worksheets("Parameter").Range("A56")
'Wo ist der zu berechnende Bereich?
Set Was = Worksheets("Daten " & Jahr.Value).Range("P6:AD6")
'Wo soll die Formel hin?
Set Dest = Worksheets("Dateneingabe").Range("AF6:AF55")
'Die Referenzen in der normalen Formel...
' =MAX('DATEN 2016'!$P6:$AD6)
'durch einfache Platzhalter ersetzen:
Formel = "=MAX(@[Was])"
'Dann die Platzhalter durch die referenzierten Zellen ersetzen
Formel = Replace(Formel, "@[Was]", Was.Address(0, 0, External:=True))
'Eintragen (FormulaLocal akzeptiert Formeln der installierten Sprache, Formula nur Englische!)
Dest.Rows(1).FormulaLocal = Formel
Dest.FillDown
Exit Sub
Errorhandler:
If Err.Source = "" Then Err.Source = Application.Name
Debug.Print "Source : " & Err.Source
Debug.Print "Error : " & Err.Number
Debug.Print "Description: " & Err.Description
If MsgBox("Error " & Err.Number & ": " & vbNewLine & vbNewLine & _
Err.Description & vbNewLine & vbNewLine & _
"Enter debug mode?", vbOKCancel + vbDefaultButton2, Err.Source) = vbOK Then
Stop 'Press F8 twice
Resume
End If
End Sub