UDFs zeigen falsche Ergebnisse oder starten nicht
16.04.2017 16:28:53
Barbaraa
Hallo
habe zwei Probleme mit UDFs (User defined functions). Vielleicht mache ich was falsch oder es ist ein bekanntes Excel-Problem.
Manche UDFs zeigen falsche Ergebnisse oder springen manchmal nicht an.
Leider manche und manchmal, ohne erkennbares Muster.
Zum ersten: Falsches Ergebnis bei folgendem Beispiel
Eine UDF wird durch Änderung in einer Bezugszelle ausgelöst, zB D1:G20 als Bereich.
Function Test(Bereich As Range)
Test = Bereich(2, 1).Value
End Function
Wird die UDF durch eine Änderung in D2 ausgelöst, wird in der UDF "Test" manchmal der alte Wert, also der vor der Änderung übergeben. In D2 steht die einfache Formel:"=A1". Ich schreibe was Neues in A1, was eine Änderung im Bereich bewirkt und die UDF "Test" auslöst. Offensichtlich wartet diese nicht das Ergebnis der Änderung ab und verarbeitet den alten Zustand.
Aber eben nicht immer, meistens funktioniert sie erwartungsgemäß. Die UDF "Test" selbst ist also richtig.
Was mir noch aufgefallen ist:
Wenn die UDF "Test" in mehreren Zellen steht und sich auf den selben Bereich bezieht "=Test(D1:G20)", bringt eine manchmal das falsche Ergebnis wie oben beschrieben und alle anderen das richtige Ergebnis mit dem neuen Wert.
Zum zweiten: Manche UDFs springen manchmal nicht an.
Auch hier: Leider manche und manchmal, ohne erkennbares Muster.
Jedenfalls: "?Application.Calculation" ergibt -4105 (entspricht xlCalculationAutomatic),
auch die Berechnungsoptionen stehen auf automatisch.
Auch F9, Berechnen, Blatt Berechnen, per Menüsteuerung oder als Makro bringen Excel nicht dazu, diese UDFs zu berechnen.
Sogar das Ändern der Bezugszellen der UDF, was ja der eigentliche Auslöser für die Berechnung ist, lässt Excel unbeeindruckt untätig.
Abhilfe, wenn ich es entdecke:
Erst wenn ich in die entsprechende Zelle hineingehe (mit F2 oder mit der Maus), wird diese eine ausgeführt. Aber nur, wenn ich es zufällig entdecke. Aber dann funktioniert es, zumindest für diese Sitzung.
Kann es sein, dass Excel überlastet ist?
Wie auch immer, das "
Sub worksheet_change" springt ordnungsgemäß an.
Vielleicht kann man da was einbauen?
Jedenfalls "Calculate" hilft nicht.
LG, Barbara