Hallo Daro,
das Einrückungen hatte ich mir so vorgestellt. Ich habe das jetzt per Makro eingerückt, k.A. ob alles perfekt eingerückt wurde.
Option Explicit
'
Sub zusatz\_fondsvermögen(zusatz\_faktor As Integer, zusatz\_tage As Integer, zusatz\_my As Double, zusatz\_sigma As Double, Pfad() As Double, zusatz\_aktienquote As Double, zusatz\_festquote As Double, zusatz\_festzins As Double, zusatz\_kapital As Double)
Dim t As Integer
ReDim Pfad(0 To zusatz\_tage)
Dim z As Double
Dim zusatz\_vermögen As Double
Dim a As Double
Dim f As Double
Dim zusatz\_zufall As Double
z = zusatz\_kapital
For t = 1 To zusatz\_tage
zusatz\_zufall = (zusatz\_my + zusatz\_sigma \* Application.WorksheetFunction.NormSInv(Rnd()))
zusatz\_vermögen = ((zusatz\_aktienquote) \* z) \* (1 + zusatz\_zufall) + (zusatz\_festquote \* z \* (1 + zusatz\_festzins))
z = zusatz\_vermögen
a = 0
If zusatz\_zufall 1 Then
zusatz\_festquote = 1
End If
Pfad(t) = z
Next t
End Sub
'
Sub Ausgabe\_zusatz\_Pfad()
Dim zusatz\_abzeile As Integer
Dim zusatz\_abspalte As Integer
Dim zusatz\_tage As Integer
Dim zusatz\_my As Double
Dim zusatz\_sigma As Double
Dim Pfad() As Double
Dim zusatz\_aktienquote As Double
Dim zusatz\_festquote As Double
Dim zusatz\_festzins As Double
Dim zusatz\_kapital As Double
Dim zusatzaufgabe As String
Dim zusatz\_garantie As Double
Dim zusatz\_vermögen As Double
Dim zusatz\_sim As Integer
Dim zusatz\_faktor As Integer
Dim f As Double
Dim a As Double
Dim t As Integer
Dim m As Integer
Dim zusatz\_zufall As Double
Application.ScreenUpdating = False
zusatz\_abzeile = 10
zusatz\_abspalte = 6
Worksheets("zusatzaufgabe").Range(Cells(zusatz\_abzeile - 1, zusatz\_abspalte), Cells(zusatz\_abzeile + 10000, zusatz\_abspalte + 10000)).ClearContents
zusatz\_sim = Worksheets("zusatzaufgabe").Cells(15, 2).Value
zusatz\_tage = Worksheets("zusatzaufgabe").Cells(11, 2).Value
zusatz\_kapital = Worksheets("zusatzaufgabe").Cells(7, 2).Value
zusatz\_festzins = Worksheets("zusatzaufgabe").Cells(16, 2).Value
zusatz\_aktienquote = Worksheets("zusatzaufgabe").Cells(10, 2).Value
zusatz\_festquote = Worksheets("zusatzaufgabe").Cells(17, 2).Value
zusatz\_my = Worksheets("zusatzaufgabe").Cells(18, 2).Value
zusatz\_sigma = Worksheets("zusatzaufgabe").Cells(19, 2).Value
zusatz\_garantie = Worksheets("zusatzaufgabe").Cells(8, 2).Value
zusatz\_faktor = Worksheets("zusatzaufgabe").Cells(6, 2).Value
If zusatz\_tage \> 22 Then
MsgBox (" Lieber Herr XXX; auch Börsianer würden gern mal ihr Wochenende genießen!!Bitte geben Sie daher für Börsentage/Monat eine Zahl zwischen 1 und 22 ein. ")
End If
If zusatz\_tage \> 22 Then
zusatz\_tage = 0
zusatz\_kapital = 0
zusatz\_festzins = 0
zusatz\_aktienquote = 0
zusatz\_festquote = 0
zusatz\_my = 0
zusatz\_sigma = 0
zusatz\_garantie = 0
End If
If zusatz\_sim \> 1000 Then
MsgBox ("Herr XXX, wir sind es wieder! Bitte wählen Sie für die Anzahl der Simulation\_einen Wert zwischen 1 und 1000 aus.Sie können beispielsweise die Aktienquote auf 100% erhöhen und das Sigma auf 0 setzen um unser Programm zu überprüfen")
End If
If zusatz\_sim \> 1000 Then
zusatz\_tage = 0
zusatz\_kapital = 0
zusatz\_festzins = 0
zusatz\_aktienquote = 0
zusatz\_festquote = 0
zusatz\_my = 0
zusatz\_sigma = 0
zusatz\_garantie = 0
zusatz\_sim = 1
End If
For m = 1 To zusatz\_sim
Call zusatz\_fondsvermögen(zusatz\_faktor, zusatz\_tage, zusatz\_my, zusatz\_sigma, Pfad(), zusatz\_aktienquote, zusatz\_festquote, zusatz\_festzins, zusatz\_kapital)
For t = 1 To zusatz\_tage
Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile + t, zusatz\_abspalte + m - 1).Value = Pfad(t)
Next t
zusatz\_vermögen = Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile + zusatz\_tage, zusatz\_abspalte + m - 1).Value
Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile - 1, zusatz\_abspalte + m - 1).Value = (zusatz\_kapital \* zusatz\_garantie) - zusatz\_vermögen
If (zusatz\_kapital \* zusatz\_garantie) - zusatz\_vermögen 1 Then
zusatz\_festquote = 1
End If
Pfad(t) = z
Next t
End Sub
'
Sub Ausgabe\_zusatz\_Pfad()
Dim zusatz\_abzeile As Integer
Dim zusatz\_abspalte As Integer
Dim zusatz\_tage As Integer
Dim zusatz\_my As Double
Dim zusatz\_sigma As Double
Dim Pfad() As Double
Dim zusatz\_aktienquote As Double
Dim zusatz\_festquote As Double
Dim zusatz\_festzins As Double
Dim zusatz\_kapital As Double
Dim zusatzaufgabe As String
Dim zusatz\_garantie As Double
Dim zusatz\_vermögen As Double
Dim zusatz\_sim As Integer
Dim zusatz\_faktor As Integer
Dim f As Double
Dim a As Double
Dim t As Integer
Dim m As Integer
Dim zusatz\_zufall As Double
Application.ScreenUpdating = False
zusatz\_abzeile = 10
zusatz\_abspalte = 6
Worksheets("zusatzaufgabe").Range(Cells(zusatz\_abzeile - 1, zusatz\_abspalte), Cells(zusatz\_abzeile + 10000, zusatz\_abspalte + 10000)).ClearContents
zusatz\_sim = Worksheets("zusatzaufgabe").Cells(15, 2).Value
zusatz\_tage = Worksheets("zusatzaufgabe").Cells(11, 2).Value
zusatz\_kapital = Worksheets("zusatzaufgabe").Cells(7, 2).Value
zusatz\_festzins = Worksheets("zusatzaufgabe").Cells(16, 2).Value
zusatz\_aktienquote = Worksheets("zusatzaufgabe").Cells(10, 2).Value
zusatz\_festquote = Worksheets("zusatzaufgabe").Cells(17, 2).Value
zusatz\_my = Worksheets("zusatzaufgabe").Cells(18, 2).Value
zusatz\_sigma = Worksheets("zusatzaufgabe").Cells(19, 2).Value
zusatz\_garantie = Worksheets("zusatzaufgabe").Cells(8, 2).Value
zusatz\_faktor = Worksheets("zusatzaufgabe").Cells(6, 2).Value
If zusatz\_tage \> 22 Then
MsgBox (" Lieber Herr Goecke; auch Börsianer würden gern mal ihr Wochenende genießen!!Bitte geben Sie daher für Börsentage/Monat eine Zahl zwischen 1 und 22 ein. ")
End If
If zusatz\_tage \> 22 Then
zusatz\_tage = 0
zusatz\_kapital = 0
zusatz\_festzins = 0
zusatz\_aktienquote = 0
zusatz\_festquote = 0
zusatz\_my = 0
zusatz\_sigma = 0
zusatz\_garantie = 0
End If
If zusatz\_sim \> 1000 Then
MsgBox ("Herr Goecke, wir sind es wieder! Bitte wählen Sie für die Anzahl der Simulation\_einen Wert zwischen 1 und 1000 aus.Sie können beispielsweise die Aktienquote auf 100% erhöhen und das Sigma auf 0 setzen um unser Programm zu überprüfen")
End If
If zusatz\_sim \> 1000 Then
zusatz\_tage = 0
zusatz\_kapital = 0
zusatz\_festzins = 0
zusatz\_aktienquote = 0
zusatz\_festquote = 0
zusatz\_my = 0
zusatz\_sigma = 0
zusatz\_garantie = 0
zusatz\_sim = 1
End If
For m = 1 To zusatz\_sim
Call zusatz\_fondsvermögen(zusatz\_faktor, zusatz\_tage, zusatz\_my, zusatz\_sigma, Pfad(), zusatz\_aktienquote, zusatz\_festquote, zusatz\_festzins, zusatz\_kapital)
For t = 1 To zusatz\_tage
Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile + t, zusatz\_abspalte + m - 1).Value = Pfad(t)
Next t
zusatz\_vermögen = Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile + zusatz\_tage, zusatz\_abspalte + m - 1).Value
Worksheets("zusatzaufgabe").Cells(zusatz\_abzeile - 1, zusatz\_abspalte + m - 1).Value = (zusatz\_kapital \* zusatz\_garantie) - zusatz\_vermögen
If (zusatz\_kapital \* zusatz\_garantie) - zusatz\_vermögen
Gruß
Reinhard