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

Function vs. Sub

Function vs. Sub
10.10.2002 15:40:41
matthias
Hallo,

ich möchte eine Berechnung erstellen, wo ausgehend von einem Hochpunkt der Tiefpunkt ermittelt werden soll.

Nun habe ich eine Function erstellt die leider nicht funktioniert. Wenn ich den Code jedoch nahezu unverändert in eine Sub integriere läuft es. Woran kann das liegen?

Function MaxDrawdown(Bereich As Range) As Double
Dim intcol%, von%, bis%
Dim Maxkapital As Double, Minkapital As Double

Maxkapital = Application.WorksheetFunction.Max(Bereich)

intcol = Cells.Find(Maxkapital).Column
von = Bereich.Find(Maxkapital).Row
bis = Bereich.End(xlDown).Row

Minkapital = Application.WorksheetFunction.Min(Range(Cells(von, intcol), Cells(bis, intcol)))

MaxDrawdown = (1 - Minkapital / Maxkapital) * 100
End Function

Beispiel 2

Sub MaxDrawdown1()

Dim intcol%, von%, bis%
Dim Maxkapital As Double, Minkapital As Double

Set Bereich = Range("B23:B3900")

Maxkapital = Application.WorksheetFunction.Max(Bereich)

'++++++++++++++++++ Hilfskonstruktion zur Bestimmung des Tiefpunktes ab dem Hochpunkt
intcol = Bereich.Find(Maxkapital).Column
von = Bereich.Find(Maxkapital).Row
bis = Bereich.End(xlDown).Row

Minkapital = Application.WorksheetFunction.Min(Range(Cells(von, intcol), Cells(bis, intcol)))

Debug.Print intcol, von, bis, Maxkapital, Minkapital
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++

MaxDraw = (1 - Minkapital / Maxkapital) * 100
End Sub


Danke

Matthias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Function vs. Sub
10.10.2002 15:50:29
Michael Scheffler
Hallo,

würdest Du uns freundlicherweise noch verrarten, was bei Deuner Function nicht klappt.

Gruß

Micha

Re: Function vs. Sub
10.10.2002 15:53:39
Coach
Hallo Mathhias,

so sollte es funzen:
Function MaxDrawdown(Bereich As Range) As Double
Dim intcol%, von%, bis%
Dim Maxkapital As Double, Minkapital As Double
Dim r As Range
Maxkapital = Application.WorksheetFunction.Max(Bereich)

Set r = Bereich.Cells.Find(Maxkapital, LookIn:=xlValues)
intcol = r.Column
von = r.Row
bis = Bereich.Rows.Count

Minkapital = Application.WorksheetFunction.Min(Bereich.Range(Bereich.Cells(von, intcol), Bereich.Cells(bis, intcol)))

MaxDrawdown = (1 - Minkapital / Maxkapital) * 100
End Function

Gruß Coach

Anzeige
Re: Function vs. Sub
10.10.2002 16:02:22
matthias
Hallo Micha,

die Function bringt den Hinweis #WERT!, d.h. offensichtlich funktioniert die find-Methode nich.

Matthias

Re: Function vs. Sub
10.10.2002 16:05:13
matthias
Hi Coach,

vielen Dank für deinen Tip. Leider funktioniert es nicht. Kann es sein, daß die Find-Methode nicht in Funktionen verwendtbar ist?

Matthias

Re: Function vs. Sub
10.10.2002 17:21:31
Michael Scheffler
Hallo,

was heißt offensichtlich. Kannst Du nicht einen Haltepunkt setzen und Dir das im Debugger anschauen.

Und nächste Frage, rufst Du die Funktion von einem Tabellenblatt aus auf?

Gruß

Micha

Re: Function vs. Sub
10.10.2002 18:43:04
Coach
Hallo Matthias,

hab die Funktion so bei mir in Excel 2000 getestet. Funktionierte.

Gruß Coach

Re: Function vs. Sub
10.10.2002 19:01:20
Coach
Hallo Matthias,

sorry, ich habe nur in einem Modul getestet. Willst Du das in einem Tabellenblatt haben, dann geht es auch mit Standardfunktionen:
=(1 - MIN(WENN(ZEILE(C1:$C$10)>VERGLEICH(MAX($C$1:$C$10);$C$1:$C$10;0);$C$1:$C$10))/MAX($C$1:$C$10)) * 100

als Arrayfunktion (Eingabe mit Strg+Shift+Enter)

Gruß Coach

Anzeige

68 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige