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

Nichtausführung von Functionen

Nichtausführung von Functionen
18.11.2002 15:47:37
matthias
Hallo,

aus nichtnachvollziehbaren Gründen kommt es von Zeit zu Zeit vor das Functionen Ergebnisse von 0 (oder anderes) anzeigen, obwohl anderere Werte da stehen müßten. Durch das Aktivieren der Zelle und das Bestätigen mit Enter wird dann der richtige Wert wieder angezeigt. Woran kann dieser Fehler liegen bzw. wie läßt er sich unterbinden?

Vielen Dank.

Matthias

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Nichtausführung von Functionen
18.11.2002 15:52:07
Hajo_Zi
Hallo Mattias

bei Fragen zu Code wäre es schon hilfreich, wenn wird den Code sehen könnten. Sonst artet es in einer Fragestunde aus.

Du könntest in die erste Zeile schreiben
Application.Volatile

damit wird die Funktion aber bei jeder Änderung in der Tabelle ausgeführt, was Zeit kostet

Gruß Hajo

Re: Nichtausführung von Functionen
18.11.2002 16:04:55
matthias
Hallo Hajo,

es betrifft keine spezielle Function, sondern tritt bei allen auf.

Dennoch ein Bespiel:

Function MaxDrawdown_Prozent(Bereich As Range, Abstand%)
'Berrechnung von einem Hochpunkt in einem Bereich bis zum Wiedererreichen und Ermittlung des Verlustes dazwischen
Application.ScreenUpdating = False
On Error Resume Next
Dim StepBereich As Range
Dim Maxwert#, minwert#, von%, startpunkt%, bis%, maxddneu#

gesamtvon = Bereich.Row
gesamtbis = Bereich.Count + gesamtvon
spaltewerte = Bereich.Column

startpunkt = gesamtvon
MaxDrawdown_% = 0

For x = 1 To gesamtbis / Abstand
Set StepBereich = Range(Cells(startpunkt, spaltewerte), Cells(startpunkt + Abstand, spaltewerte))
Maxwert = Application.WorksheetFunction.Max(StepBereich)

For von = startpunkt To startpunkt + Abstand
If Cells(von, spaltewerte) = Maxwert Then
Exit For
End If
Next

For bis = von + 1 To gesamtbis
If Cells(bis, spaltewerte) >= Maxwert Then
Exit For
End If
Next bis

minwert = Application.WorksheetFunction.Min(Range(Cells(von, spaltewerte), Cells(bis, spaltewerte)))
maxddneu = minwert / Maxwert - 1
If maxddneu < MaxDrawdown_Prozent Then
MaxDrawdown_Prozent = maxddneu
End If

startpunkt = bis
'Debug.Print MaxDrawdown_Prozent, minwert, Maxwert
Next x

End Function

Mir kommt es so vor, daß die Berechnung insbesondere nach dem Speichern falsch ist.

Matthias

Anzeige
Re: Nichtausführung von Functionen
18.11.2002 18:35:07
Michael
Hallo,

mir fällt auf, daß da ein
Application.ScreenUpdating = False steht, aber kein

Application.ScreenUpdating = True.

Re: Nichtausführung von Functionen
18.11.2002 20:23:26
Hans W. Hofmann
Hallo matthias,

der Killer in Deiner Funktion ist
Set StepBereich = Range(Cells(startpunkt, spaltewerte), Cells(startpunkt + Abstand, spaltewerte))
damit produzierst Du einen Seiteneffekt, d.h Du greift an dem im Funktionkopf gegebenen Bereich vorbei - XL bekommt nicht mit, dass die Funktion berechnet werden muß, weil Bereich praktisch nicht verwemdet wird. Mir fehlt die Zeit zu analysieren, was mit Deine Schleifenkonstruktion bewerkstelligt werden soll. Aber Du musst die Berechnung direkt an Bereich durchführen.
Bereich=A1:B4
Dann Bereich(1) ~ A1
weiter Bereich(2)~ B1
Bereich(3) ~ A2
usw.
Dann führen Änderungen an Bereich auch zu Neuberechnung der Funktion...


Gruß HW

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige