Microsoft Excel

Herbers Excel/VBA-Archiv

Schleifen Dynamisch Programmieren

Betrifft: Schleifen Dynamisch Programmieren von: Oliver
Geschrieben am: 16.10.2014 15:13:09

Hallo,
ich möchte gerne diese geschachtelten Schleifen dynamisch Programmieren. Also n Schleifen die jeweils eins ergeben. Leider ist mir dies noch nicht gelungen. Ich habe schon gelesen das man das Rekursiv machen kann. Hier mein alter Quellcode.

Sub Gitternetz(ByVal arr2)
       Dim k, m, n, j, i
       
       Worksheets("Alle-Anteile").Cells.Clear
       Worksheets("Alle-Anteile").Activate
       k = 1
   
       
       
       If UBound(arr2) = 4 Then
           For m = 0 To 1 Step 0.05
               For n = 0 To 1 Step 0.05
                   For j = 0 To 1 Step 0.05
                       For i = 1 To 0 Step -0.05
                           If Round(i + j + n + m, 2) = 1 Then
                               Cells(k, 5) = Round(i + j + n + m, 2)
                               Cells(k, 4) = i
                               Cells(k, 3) = j
                               Cells(k, 2) = n
                               Cells(k, 1) = m
                               Cells(k, 6) = Sheets("RWE").Range("L18") * m _
                               + Sheets("EON").Range("L18") * n _
                               + Sheets("Commerzbank").Range("L18") * j _
                               + Sheets("DeutscheBank").Range("L18") * i
                               Cells(k, 7).FormulaArray = _
                               "=MMULT((A" & k & ":D" & k & "),MMULT(Kovarianzmatrix!B2:E5, _
                                TRANSPOSE(A" & k & ":D" & k & ")))"
                               Cells(k, 8) = Cells(k, 7) ^ 0.5
                               k = k + 1
                           End If
                       Next i
                   Next j
               Next n
           Next m
       End If
   End Sub

Hier ist mein Rekursiver Ansatz. Ich bekomme Zählschleifen in Spalten. Aber was ich eigentlich möchte ist jede Kombination
der 4(m,n,j,i) und mehr die die Summe 1 ergeben.



   Function schleifen(i)
   
       If i > 0 Then
               for k=0 to 1 Step 0.1
                    Cells(i,k)=k
           schleifen = (i + schleifen(i - 1))
       Else
           schleifen = 0
       End If
   
   End Function
Ich hoffe das es jemanden gibt der mir Helfen kann.

  

Betrifft: AW: Schleifen Dynamisch Programmieren von: Oliver
Geschrieben am: 18.10.2014 13:39:46

Hat niemand eine Idee oder ist mein Problem nicht zu verstehen?
Brauche dringend Hilfe.


 

Beiträge aus den Excel-Beispielen zum Thema "Schleifen Dynamisch Programmieren"