Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
156to160
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
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Subaufruf in Function

Subaufruf in Function
12.09.2002 09:57:58
Derti
Ich stehe vor einem Rätsel.

Zum Problem:
In einem Sub möchte ich bestimmten Zellen einen Wert zuweisen. Etwa wie folgt:
sub zuweisung()
range("a3")= 50
end sub

Diese Zuweisung möchte ich nun in einer function aufrufen, also
public function berechnen (...)
zuweisung
berechnen =....
end function

Das besondere ist nun folgendes:
1) rufe ich die function in einem anderen sub auf, so berechnet er mir problemlos den wert,
dass heisst, er springt in die function berechnen, von dort in in die sub zuweisung, zurück in die function berechnen und gibt dann den wert zurück.
2) rufe ich die function nun im excel-sheet selber auf , schreibe also in irgendeiner zelle: =berechnen(..),
so startet er zunächst in der function berechnen (soll er ja auch), springt dann in die sub zuweisung (so weit, so gut), bricht aber dann beim befehl range("a3")= 50 ab. Warum??????

Ich hoffe, dass mir da irgendjemand weiterhelfen kann.

Derti

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Subaufruf in Function
12.09.2002 11:57:22
mathias r.
Die Funktion wird ausgeführt wenn Excel das Blatt berechnet. Wenn es zu diesem Zeitpunkt das Blatt wieder verändert das es gerade berechnet bekommt Excel wohl ein Problem...
Re: Subaufruf in Function
12.09.2002 12:11:01
Axel
Hallo,

die Erklärung ist simpel und ernüchternd!

Excel erlaubt keine Veränderung von Zellbereichen beim Aufruf von Tabellenfunktionen.

Dies bezieht sich nicht nur auf Änderungen des Zellwertes, sondern auf jegliche Zelleigenschaft, also auch Farben, Fonts, etc.

Ärgerlich ist, das dies in der Dokumentation nicht erwähnt wird und auch keine Fehlermeldung erscheint, da die Funktion bei der entsprechenden Anweisung einfach terminiert wird.

Der Grund für dieses Verhalten liegt darin begründet, da es durch die Änderung des Wertes letzlich zu einer (endlosen) rekursiven Neuberechnung des Blattes kommen könnte. Leider läßt sich dies auch durch Abschalten der Neuberechnung (Calculation = xlCalculationManual) nicht beeinflussen.

Wenn Du über die Tabellenfunktion Zellwerte ändern möchtest, die quasi als Variablen dienen, kannst Du Dir mit einem Trick helfen: Die Wertänderung benannter Bereiche ist nämlich auch aus einer Tabellenfunktion möglich.

Es gibt zu dem Thema übrigens eine interessante Seite unter
http://www.decisionmodels.com/calcsecretsj.htm

Gruß
Axel

Anzeige
Re: Subaufruf in Function
12.09.2002 12:51:28
Derti
Danke für den Tipp. Werd mal schauen, ob ich das hinbekomme.
Derti

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige