Anzeige
Archiv - Navigation
1652to1656
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
Inhaltsverzeichnis

Anfängerfrage: Wiederholende Elemente

Anfängerfrage: Wiederholende Elemente
25.10.2018 17:43:01
Bernd
Wertes Forum,
ich habe eine Frage zu einem Programm in dem ich einen Wert 1 ermitteln möchte und einen Wert 2. Diese stehen in einer Liste und die Werte suche ich mit Do-Schleifen. Diese beiden Werte werden anschließend verrechnet, z.B. Durchschnitt o.ä. und in einer Tabelle dokumentiert.
Der Wert 1 bzw. der Wert 2 kann aber aus unterschiedlichen Vorgaben entstehen, z.B.
Var. 1: Wert ist Max aus Spalte A
Var. 2: Wert ist größer an 50
Var. 3: Wert ist größer als Summe aus …
Wenn ich nun alle Kombinationen an Varianten versuchen möchte, halte ich es für sinnvoll, diese Varianten „irgendwo“ einmal niederzuschreiben und im Code zu sagen, Wert 1 ist Variante 2 und Wert 2 ist Variante 4.
Und die Verrechnung im Nachhinein funktioniert sowieso immer nach der gleichen Methode, hier ists doch auch sinnvoll, dies nur „einmal“ zu schreiben.
Ich habe versucht, sich diese wiederholenden Elemente in einem eigenen Sub zu schreiben und im Programm mit „Call Sub“ wieder aufzurufen. Allerdings kennt er dann gewissen Variablen, die im „Hauptprogramm“ definiert sind nicht mehr weil er nun ja im Unterprogramm ist.
Wieso macht man so wiederholende Elemente ordentlich?
Wie kann ich die Kombination der Varianten geschickt machen?
Ich hoffe, es kam klar rüber was mein Problem ist, ansonsten einfach nochmal fragen.
Vielen Dank vorab! :-)

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

Betreff
Datum
Anwender
Anzeige
Deklariere die Variablen als Public
25.10.2018 17:46:52
Matthias
Hi
Also nicht Dim Variable1
sondern Public Variable1
damit ist die Variable "öffentlich" und man kann mit dem Inhalt weiterarbeiten.
Gruß Matthias
AW: Anfängerfrage: Wiederholende Elemente
25.10.2018 17:58:09
onur
"Allerdings kennt er dann gewissen Variablen, die im „Hauptprogramm“ definiert sind nicht mehr"?
"Wieso macht man so wiederholende Elemente ordentlich?" -?
Was ist damit denn gemeintz?
Wenn ich dich richtig verstehe, solltest du eine Sub oder Funktion schreiben und dieser sowohl den Wert als auch die Variante übergeben.
Dann kannst du in der Sub mit dem Wert, abhängig von der Variante, verschieden verfahren.
z.B.:
Public Sub Test (Wert as double, Variante as Integer) as Double
Select Case Variante
Case 1
Case 2
usw

Anzeige
AW: Anfängerfrage: Wiederholende Elemente
25.10.2018 21:12:40
Bernd
Vielleicht hier ein Beispiel einer Do-Schleife, die es vielleicht deutlicher macht:
        Do Until (Cells(aktZeile, EMA5) > Cells(aktZeile, EMA10) And Cells(aktZeile, EMA10) > _
Cells(aktZeile, EMA20))
If aktZeile = ersteZeile Then
Exit Do
End If
aktZeile = aktZeile - 1
Loop
Worksheets("Backtesting").Cells(n, 1).Value = "Strategie_ABC"
Worksheets("Backtesting").Cells(n, 2).Value = Cells(1, 1)
Worksheets("Backtesting").Cells(n, 3).Value = Cells(aktZeile, 1)
Worksheets("Backtesting").Cells(n, 4).Value = Cells(aktZeile, 5)
Kauf = aktZeile
Den obigen Code werde ich so für alle Varianten verwenden, es wird sich nur die fette Zeile ändern (weil die ja meine Variante ausmacht). Der Rest bleibt immer gleich. Und bevor ich das nun in jede meiner Varianten reinschreibe, wäre es klug, dass irgendwo einmal zu schreiben und danach mehrmals zu verwenden.
Vielleicht ist es passend es mit einem Textbaustein in Word zu vergleichen.
Anzeige
Beispielmappe zur Verdeutlichung anbei
30.10.2018 20:10:03
Bernd
https://www.herber.de/bbs/user/125015.xlsm
Zur Verdeutlichung habe ich eine Beispielmappe hochgeladen, in der der ganze Code mit einigen Kommentaren zu sehen ist. Wie gesagt ist dieser vermutlich noch auf Anfänger-Niveau.
An einem Punkt der Tabelle kommt das Suchen des Kaufsignals und des Verkaufssignal mit einer Do-Schleife:
Do Until aktZeile = ersteZeile
'Suche Kaufsignal und schreibe Werte in Auswertetabelle
Kaufname = "EMA5>EMA10>EMA20"
Do Until (Cells(aktZeile, EMA5) > Cells(aktZeile, EMA10) And Cells(aktZeile, EMA10)  _
> Cells(aktZeile, EMA20))
If aktZeile = ersteZeile Then
Exit Do
End If
aktZeile = aktZeile - 1
Loop
Worksheets("Backtesting").Cells(n, 2).Value = Cells(1, 1)
Worksheets("Backtesting").Cells(n, 3).Value = Cells(aktZeile, 1)
Worksheets("Backtesting").Cells(n, 4).Value = Cells(aktZeile, 5)
Kauf = aktZeile
'Suche Verkaufsignal und schreibe Werte in Auswertetabelle
Verkaufname = "EMA5&
Nun möchte ich aber nachdem diese eine Variante dieser Kauf- und Verkaufswertsuche beendet wurde, wieder von unten noch weitere Kombinationen durchführen. Und es kann gut sein, dass ich beispielsweise unterschiedliche Kaufsignale immer mit dem gleichen Verkaufssignal testen möchte. Somit würde sich ja dieses eine Verkaufssignal immer wiederholen und müsste immer wieder getippt werden.
Wie kann ich das machen, ohne dass ich die Do-Schleifen untereinander schreibe und sich manche sogar wiederholen?
Meine Idee wäre, diese Kauf- und Verkaufvarianten irgendwo außerhalb in einzelnen Subs (?) zu schreiben und im eigentlich Programmcode nur zu schreiben:
Call Kauf1
Call Verkauf4
Call Berechnung
Call Kauf2
Call Verkauf1
Call Berechnung
Sollte man das so machen können, wie übernimmt man die definierten Variablen und wie stelle ich sicher, dass meine Zähler-Variablen auch in diesen Untertabs weiterzählen?
Oder gibt es einen ganz anderen Weg?
Vielen Dank für Eure Rückantworten! :)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige