Hallo zusammen,
ich würde gerne nachfolgend etwas simulieren. Das klappt auch. Jedoch möchte ich eine Funktion habe, dass wenn die Sprungwahrscheinlichkeit >= als die von mir vorgegene Wahrscheinlichkeit und die zufaelligeblocklaenge >= der von mir vorgegebenen Wahrscheinlichkeit ist, die zufaellige Zeile bis zum erreichen der >= markierung summiert wird.Ich glaube es liegt an der
If
-
Then
Formel.
Wäre super, wenn mir dabei jemand helfen könnte.
Vielen Dank.
Option
Explicit
Sub
simulation()
Dim
aktZSK(1
To
5)
As
Variant
Dim
zwischenerg(1
To
5)
As
Variant
Dim
Zeitraum
As
Integer
Dim
anzahlsimulationen
As
Integer
Dim
zufallszahl
As
Double
Dim
Blocklaenge
As
Integer
Dim
Wahrscheinlichkeit
As
Double
Dim
zufaelligeblocklaenge(1
To
5)
As
Integer
Dim
Sprungwahrscheinlichkeit(1
To
5)
As
Double
Zeitraum = Blatt1.Cells(1, 14)
anzahlsimulationen = Blatt1.Cells(2, 14)
Blocklaenge = Blatt1.Cells(3, 14)
Wahrscheinlichkeit = Blatt1.Cells(4, 14)
Dim
i
As
Integer
Dim
j
As
Integer
Dim
z
As
Integer
For
i = 1
To
5
aktZSK(i) = Blatt1.Cells(5, i + 1)
Next
i
For
j = 1
To
anzahlsimulationen
For
z = 1
To
Zeitraum
zufallszahl = Application.WorksheetFunction.RandBetween(1, 1306)
For
i = 1
To
5
Sprungwahrscheinlichkeit(i) = Application.WorksheetFunction.RandBetween(0, 1)
zufaelligeblocklaenge(i) = Application.WorksheetFunction.RandBetween(0, Blatt1.Cells(1, 14))
Next
i
If
(zufaelligeblocklaenge(i) < Blocklaenge)
Or
(Sprungwahrscheinlichkeit(i) < Wahrscheinlichkeit)
Then
Else
zwischenerg(i) = zwischenerg(i) + Blatt1.Cells(zufallszahl + 4, i + 7)
Next
z
For
i = 1
To
5
Blatt1.Cells(6 + j, 14 + i) = aktZSK(i) * Exp(zwischenerg(i))
Next
i
For
i = 1
To
5
zwischenerg(i) = 0
Next
i
Next
j
End
Sub