Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu Application.Volatile

Frage zu Application.Volatile
30.11.2007 11:54:18
Nefjs
Hallo,
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zu Application.Volatile
30.11.2007 13:26:03
Ramses
Hallo
Grundsätzlich hängt es mal davon ab, ob das Sheet überhaupt automatisch berechnet wird.
Wenn ja, dann wird auch die Funktion neu berechnet.
Nur in wenigen Ausnahmefällen ist "Application.Volatile" eigentlich nötig.
In deinem Fall könnte das zutreffen, da die Funktion auf mehrere Referenzzellen zugreift und diese verarbeiten sollte.
Probiers doch einfach mal aus.
Gruss Rainer

AW: Frage zu Application.Volatile
30.11.2007 14:36:00
Renee
Hi Nefjs,
Ich finde deinen Code ziemlich strange.
Du hast zwar 3 Ranges als Inputparameter, aber in der Funktion referenzierst mit deren Adressen Zellen in einem anderen? Tabellenblatt. Warum ?
GreetZ Renee

Anzeige
AW: Frage zu Application.Volatile
30.11.2007 18:21:00
Nefjs
Hallo Renee,
mit der Formel sollen Kosten einer Profitcentergruppe (BusinessUnit) auf einzelne Profitcenter umgelegt werden. Die Formeln stehen in den Profitcentertabellen und geifen auf die identischen Zellen der eigenen Tabelle sowie der übergeordneten Tabelle BusinessUnit zu. Wäre jetzt etwas mühsam, das genau zu erklären aber ich denke, die Formeln sind grundsätzlich OK.
Mich würde eben nur interessieren, ob es bestimmte Kriterien gibt, nach denen Excel die Funktionen neu berechnet oder nicht, das kann ja keine Willkür sein.
Grüße
Nefjs

AW: Frage zu Application.Volatile
30.11.2007 18:24:00
Nefjs
Hallo Ramses,
von Ausnahme kann keine Rede sein. Wenn ich die Function

Function test()
test = Sheets(2).Range("A1").Value * 2
End Function


in Tabelle1 in eine Zelle schreibe, bekommt sie es nicht mit, wenn ich in Tabelle2 den Wert von A1 ändere.
Gruß
Nefjs

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige