Frage zu Application.Volatile
30.11.2007 11:54:18
Nefjs
wovon hängt es aber, ob sich eine UDF selbst neu berechnet oder ob man ein application.volatile einbauen muß bzw ein FullCalculation auslösen muß.
Zum Beispiel folgende Function berechnet sich NICHT neu, wenn sich die Werte der Paraemter ändern. Woran liegt das?
Public Function AdjustmentSplit(Ref1 As Range, Ref2 As Range, Ref3 As Range) As Double
'verteilt Adjustment anteilig von BusinessUnit auf Profitcenter
Dim sh As Worksheet
Dim AnzahlPrC As Long
Dim Adjust As Double
Dim AufrufZelle As String 'Adresse der Zelle, in der die Formel steht
Set sh = Sheets("BusinessUnit")
AufrufZelle = Application.Caller.Address
If sh.Range(Ref1.Address) 0 Then
AdjustmentSplit = Ref1.Value / sh.Range(Ref1.Address).Value * sh.Range(AufrufZelle).Value
ElseIf sh.Range(Ref2.Address) 0 Then
AdjustmentSplit = Ref2.Value / sh.Range(Ref2.Address).Value * sh.Range(AufrufZelle).Value
ElseIf sh.Range(Ref3.Address) 0 Then
AdjustmentSplit = Ref3.Value / sh.Range(Ref2.Address).Value * sh.Range(AufrufZelle).Value
Else 'Nur wenn alle drei Referenzzellen 0 sind, wird das Adjustment linear über alle _
Kostenstellen aufgeteilt
AnzahlPrC = 10 'Tabelle11.index - Sheets("Ende").index - 1
AdjustmentSplit = 1 / AnzahlPrC * sh.Range(AufrufZelle).Value
End If
End Function
Grüße
Nefjs