Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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

VBA Schleifen Problem

VBA Schleifen Problem
21.08.2015 19:08:46
Julia559
Hallo zusammen,
ich habe mal wieder ein Schleifen Problem und weiß nicht woran das Ganze liegen könnte. Mittels einer Schleife soll der Wert der Zelle C212 sukzessive um 0,0001 reduziert werden. Parallel soll der Wert der Zelle C213 um 0,0001 erhöht werden. In dem gleichen Tabellenblatt habe ich weitere Formeln hinterlegt. Wenn die Schleife ausgeführt wird, verändern sich automatisch (druch die hinterlegten Excel Formeln) die Werte der Zelle AH334-AH339. In diesen Zellen (AH334-AH339) wird eine Rangordnung von 1-7 berechnet. Die Schleife soll nun solange laufen, wie die nachfolgende Rangordnung nicht verändert wird: AH333 = 7; AH334 = 6; AH335 = 3; AH336 = 1; AH337 = 2; AH338 = 5; AH339 = 4. D.h. die Schleife darf nur laufen, wenn die gegebene Rangordnung nicht verändert wird. Mein Makro funktioniert soweit, allerdings bricht es an der nicht richtigen Stelle ab. Setze ich nach Abschluss des Makros manuell die Zelle C212 um weitere 0,0001 nach unten und die Zelle C213 um weitere 0,0001 nach oben, bleibt die geforderte Rangfolge erhalten. Dennoch hat das Makro abgebrochen, was es eigentlich nicht sollte.
Hat jemand von euch eine Idee, an was dies liegen könnte? Nachfolgend findet ihr mein Makro dazu.
Vielen Dank für eure Hilfe.
Liebe Grüße,
Julia
Sub iteration2()
Dim i As Long, j As Long
Dim wert As Double
Dim wert1 As Double
Dim wert2 As Double
Dim wert3 As Double
Dim wert4 As Double
Dim wert5 As Double
Dim wert6 As Double
j = Sheets("Ergebnisse").Range("B1").Value
i = 0 ' Notnagel zur Verhinderung einer Endlosschleife
Sheets("GP Robustheit").Select
Do
wert = Range("AH333").Value
wert1 = Range("AH334").Value
wert2 = Range("AH335").Value
wert3 = Range("AH336").Value
wert4 = Range("AH337").Value
wert5 = Range("AH338").Value
wert6 = Range("AH339").Value
Range("C212") = Range("C212") - 0.0001
Range("C213") = Range("C213") + 0.0001
i = i + 1
Loop While (0  1E+15 Then
Sheets("Ergebnisse").Cells(9 * j + 0, 2).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 3).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 3).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 4).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 5).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 5).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 6).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 6).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 6).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 6).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 6).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 7).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 7).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 7).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 7).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 7).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 5, 8).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 5, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 6, 9).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 5, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 6, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 7, 10).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 5, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 6, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 7, 11).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 2, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 3, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 4, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 5, 12).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 6, 12).Value = "Iterationen: " & i
Else
Sheets("Ergebnisse").Cells(9 * j + 0, 2).Value = Range("B333")
Sheets("Ergebnisse").Cells(9 * j + 0, 3).Value = Range("E333")
Sheets("Ergebnisse").Cells(9 * j + 1, 3).Value = Range("E334")
Sheets("Ergebnisse").Cells(9 * j + 0, 4).Value = Range("H333")
Sheets("Ergebnisse").Cells(9 * j + 0, 5).Value = Range("K333")
Sheets("Ergebnisse").Cells(9 * j + 1, 5).Value = Range("K334")
Sheets("Ergebnisse").Cells(9 * j + 0, 6).Value = Range("N333")
Sheets("Ergebnisse").Cells(9 * j + 1, 6).Value = Range("N334")
Sheets("Ergebnisse").Cells(9 * j + 2, 6).Value = Range("N335")
Sheets("Ergebnisse").Cells(9 * j + 3, 6).Value = Range("N336")
Sheets("Ergebnisse").Cells(9 * j + 4, 6).Value = Range("N337")
Sheets("Ergebnisse").Cells(9 * j + 0, 7).Value = Range("Q333")
Sheets("Ergebnisse").Cells(9 * j + 1, 7).Value = Range("Q334")
Sheets("Ergebnisse").Cells(9 * j + 2, 7).Value = Range("Q335")
Sheets("Ergebnisse").Cells(9 * j + 3, 7).Value = Range("Q336")
Sheets("Ergebnisse").Cells(9 * j + 4, 7).Value = Range("Q337")
Sheets("Ergebnisse").Cells(9 * j + 0, 8).Value = Range("T333")
Sheets("Ergebnisse").Cells(9 * j + 1, 8).Value = Range("T334")
Sheets("Ergebnisse").Cells(9 * j + 2, 8).Value = Range("T335")
Sheets("Ergebnisse").Cells(9 * j + 3, 8).Value = Range("T336")
Sheets("Ergebnisse").Cells(9 * j + 4, 8).Value = Range("T337")
Sheets("Ergebnisse").Cells(9 * j + 5, 8).Value = Range("T338")
Sheets("Ergebnisse").Cells(9 * j + 0, 9).Value = Range("W333")
Sheets("Ergebnisse").Cells(9 * j + 1, 9).Value = Range("W334")
Sheets("Ergebnisse").Cells(9 * j + 2, 9).Value = Range("W335")
Sheets("Ergebnisse").Cells(9 * j + 3, 9).Value = Range("W336")
Sheets("Ergebnisse").Cells(9 * j + 4, 9).Value = Range("W337")
Sheets("Ergebnisse").Cells(9 * j + 5, 9).Value = Range("W338")
Sheets("Ergebnisse").Cells(9 * j + 6, 9).Value = Range("W339")
Sheets("Ergebnisse").Cells(9 * j + 0, 10).Value = Range("Z333")
Sheets("Ergebnisse").Cells(9 * j + 1, 10).Value = Range("Z334")
Sheets("Ergebnisse").Cells(9 * j + 2, 10).Value = Range("Z335")
Sheets("Ergebnisse").Cells(9 * j + 3, 10).Value = Range("Z336")
Sheets("Ergebnisse").Cells(9 * j + 4, 10).Value = Range("Z337")
Sheets("Ergebnisse").Cells(9 * j + 5, 10).Value = Range("Z338")
Sheets("Ergebnisse").Cells(9 * j + 6, 10).Value = Range("Z339")
Sheets("Ergebnisse").Cells(9 * j + 7, 10).Value = Range("Z340")
Sheets("Ergebnisse").Cells(9 * j + 0, 11).Value = Range("AC333")
Sheets("Ergebnisse").Cells(9 * j + 1, 11).Value = Range("AC334")
Sheets("Ergebnisse").Cells(9 * j + 2, 11).Value = Range("AC335")
Sheets("Ergebnisse").Cells(9 * j + 3, 11).Value = Range("AC336")
Sheets("Ergebnisse").Cells(9 * j + 4, 11).Value = Range("AC337")
Sheets("Ergebnisse").Cells(9 * j + 5, 11).Value = Range("AC338")
Sheets("Ergebnisse").Cells(9 * j + 6, 11).Value = Range("AC339")
Sheets("Ergebnisse").Cells(9 * j + 7, 11).Value = Range("AC340")
Sheets("Ergebnisse").Cells(9 * j + 0, 12).Value = Range("AF333")
Sheets("Ergebnisse").Cells(9 * j + 1, 12).Value = Range("AF334")
Sheets("Ergebnisse").Cells(9 * j + 2, 12).Value = Range("AF335")
Sheets("Ergebnisse").Cells(9 * j + 3, 12).Value = Range("AF336")
Sheets("Ergebnisse").Cells(9 * j + 4, 12).Value = Range("AF337")
Sheets("Ergebnisse").Cells(9 * j + 5, 12).Value = Range("AF338")
Sheets("Ergebnisse").Cells(9 * j + 6, 12).Value = Range("AF339")
Sheets("Ergebnisse").Cells(9 * j + 0, 14).Value = Sheets("GP Robustheit Basis").Range("C212")
Sheets("Ergebnisse").Cells(9 * j + 1, 14) = Range("A212")
Sheets("Ergebnisse").Cells(9 * j + 0, 15).Value = Range("C212")
Sheets("Ergebnisse").Cells(9 * j + 0, 16).Value = Sheets("GP Robustheit Basis").Range("C212") -  _
Range("C212")
Sheets("Ergebnisse").Cells(9 * j + 0, 17).Value = Sheets("GP Robustheit Basis").Range("C213")
Sheets("Ergebnisse").Cells(9 * j + 1, 17) = Range("A213")
Sheets("Ergebnisse").Cells(9 * j + 0, 18).Value = Range("C213")
Sheets("Ergebnisse").Cells(9 * j + 0, 19).Value = Sheets("GP Robustheit Basis").Range("C213") -  _
Range("C213")
Sheets("Ergebnisse").Cells(9 * j + 0, 21).Value = Sheets("GP Robustheit Basis").Range("D333")
Sheets("Ergebnisse").Cells(9 * j + 0, 22).Value = Sheets("GP Robustheit").Range("D333")
Sheets("Ergebnisse").Cells(9 * j + 0, 23).Value = Sheets("GP Robustheit Basis").Range("G333")
Sheets("Ergebnisse").Cells(9 * j + 1, 23).Value = Sheets("GP Robustheit Basis").Range("G334")
Sheets("Ergebnisse").Cells(9 * j + 0, 24).Value = Sheets("GP Robustheit").Range("G333")
Sheets("Ergebnisse").Cells(9 * j + 1, 24).Value = Sheets("GP Robustheit").Range("G334")
Sheets("Ergebnisse").Cells(9 * j + 0, 25).Value = Sheets("GP Robustheit Basis").Range("J333")
Sheets("Ergebnisse").Cells(9 * j + 0, 26).Value = Sheets("GP Robustheit").Range("J333")
Sheets("Ergebnisse").Cells(9 * j + 0, 27).Value = Sheets("GP Robustheit Basis").Range("M333")
Sheets("Ergebnisse").Cells(9 * j + 1, 27).Value = Sheets("GP Robustheit Basis").Range("M334")
Sheets("Ergebnisse").Cells(9 * j + 0, 28).Value = Sheets("GP Robustheit").Range("M333")
Sheets("Ergebnisse").Cells(9 * j + 1, 28).Value = Sheets("GP Robustheit").Range("M334")
Sheets("Ergebnisse").Cells(9 * j + 0, 29).Value = Sheets("GP Robustheit Basis").Range("P333")
Sheets("Ergebnisse").Cells(9 * j + 1, 29).Value = Sheets("GP Robustheit Basis").Range("P334")
Sheets("Ergebnisse").Cells(9 * j + 2, 29).Value = Sheets("GP Robustheit Basis").Range("P335")
Sheets("Ergebnisse").Cells(9 * j + 3, 29).Value = Sheets("GP Robustheit Basis").Range("P336")
Sheets("Ergebnisse").Cells(9 * j + 4, 29).Value = Sheets("GP Robustheit Basis").Range("P337")
Sheets("Ergebnisse").Cells(9 * j + 0, 30).Value = Sheets("GP Robustheit").Range("P333")
Sheets("Ergebnisse").Cells(9 * j + 1, 30).Value = Sheets("GP Robustheit").Range("P334")
Sheets("Ergebnisse").Cells(9 * j + 2, 30).Value = Sheets("GP Robustheit").Range("P335")
Sheets("Ergebnisse").Cells(9 * j + 3, 30).Value = Sheets("GP Robustheit").Range("P336")
Sheets("Ergebnisse").Cells(9 * j + 4, 30).Value = Sheets("GP Robustheit").Range("P337")
Sheets("Ergebnisse").Cells(9 * j + 0, 31).Value = Sheets("GP Robustheit Basis").Range("S333")
Sheets("Ergebnisse").Cells(9 * j + 1, 31).Value = Sheets("GP Robustheit Basis").Range("S334")
Sheets("Ergebnisse").Cells(9 * j + 2, 31).Value = Sheets("GP Robustheit Basis").Range("S335")
Sheets("Ergebnisse").Cells(9 * j + 3, 31).Value = Sheets("GP Robustheit Basis").Range("S336")
Sheets("Ergebnisse").Cells(9 * j + 4, 31).Value = Sheets("GP Robustheit Basis").Range("S337")
Sheets("Ergebnisse").Cells(9 * j + 0, 32).Value = Sheets("GP Robustheit").Range("S333")
Sheets("Ergebnisse").Cells(9 * j + 1, 32).Value = Sheets("GP Robustheit").Range("S334")
Sheets("Ergebnisse").Cells(9 * j + 2, 32).Value = Sheets("GP Robustheit").Range("S335")
Sheets("Ergebnisse").Cells(9 * j + 3, 32).Value = Sheets("GP Robustheit").Range("S336")
Sheets("Ergebnisse").Cells(9 * j + 4, 32).Value = Sheets("GP Robustheit").Range("S337")
Sheets("Ergebnisse").Cells(9 * j + 0, 33).Value = Sheets("GP Robustheit Basis").Range("V333")
Sheets("Ergebnisse").Cells(9 * j + 1, 33).Value = Sheets("GP Robustheit Basis").Range("V334")
Sheets("Ergebnisse").Cells(9 * j + 2, 33).Value = Sheets("GP Robustheit Basis").Range("V335")
Sheets("Ergebnisse").Cells(9 * j + 3, 33).Value = Sheets("GP Robustheit Basis").Range("V336")
Sheets("Ergebnisse").Cells(9 * j + 4, 33).Value = Sheets("GP Robustheit Basis").Range("V337")
Sheets("Ergebnisse").Cells(9 * j + 5, 33).Value = Sheets("GP Robustheit Basis").Range("V338")
Sheets("Ergebnisse").Cells(9 * j + 0, 34).Value = Sheets("GP Robustheit").Range("V333")
Sheets("Ergebnisse").Cells(9 * j + 1, 34).Value = Sheets("GP Robustheit").Range("V334")
Sheets("Ergebnisse").Cells(9 * j + 2, 34).Value = Sheets("GP Robustheit").Range("V335")
Sheets("Ergebnisse").Cells(9 * j + 3, 34).Value = Sheets("GP Robustheit").Range("V336")
Sheets("Ergebnisse").Cells(9 * j + 4, 34).Value = Sheets("GP Robustheit").Range("V337")
Sheets("Ergebnisse").Cells(9 * j + 5, 34).Value = Sheets("GP Robustheit").Range("V338")
Sheets("Ergebnisse").Cells(9 * j + 0, 35).Value = Sheets("GP Robustheit Basis").Range("Y333")
Sheets("Ergebnisse").Cells(9 * j + 1, 35).Value = Sheets("GP Robustheit Basis").Range("Y334")
Sheets("Ergebnisse").Cells(9 * j + 2, 35).Value = Sheets("GP Robustheit Basis").Range("Y335")
Sheets("Ergebnisse").Cells(9 * j + 3, 35).Value = Sheets("GP Robustheit Basis").Range("Y336")
Sheets("Ergebnisse").Cells(9 * j + 4, 35).Value = Sheets("GP Robustheit Basis").Range("Y337")
Sheets("Ergebnisse").Cells(9 * j + 5, 35).Value = Sheets("GP Robustheit Basis").Range("Y338")
Sheets("Ergebnisse").Cells(9 * j + 6, 35).Value = Sheets("GP Robustheit Basis").Range("Y339")
Sheets("Ergebnisse").Cells(9 * j + 0, 36).Value = Sheets("GP Robustheit").Range("Y333")
Sheets("Ergebnisse").Cells(9 * j + 1, 36).Value = Sheets("GP Robustheit").Range("Y334")
Sheets("Ergebnisse").Cells(9 * j + 2, 36).Value = Sheets("GP Robustheit").Range("Y335")
Sheets("Ergebnisse").Cells(9 * j + 3, 36).Value = Sheets("GP Robustheit").Range("Y336")
Sheets("Ergebnisse").Cells(9 * j + 4, 36).Value = Sheets("GP Robustheit").Range("Y337")
Sheets("Ergebnisse").Cells(9 * j + 5, 36).Value = Sheets("GP Robustheit").Range("Y338")
Sheets("Ergebnisse").Cells(9 * j + 6, 36).Value = Sheets("GP Robustheit").Range("Y339")
Sheets("Ergebnisse").Cells(9 * j + 0, 37).Value = Sheets("GP Robustheit Basis").Range("AB333")
Sheets("Ergebnisse").Cells(9 * j + 1, 37).Value = Sheets("GP Robustheit Basis").Range("AB334")
Sheets("Ergebnisse").Cells(9 * j + 2, 37).Value = Sheets("GP Robustheit Basis").Range("AB335")
Sheets("Ergebnisse").Cells(9 * j + 3, 37).Value = Sheets("GP Robustheit Basis").Range("AB336")
Sheets("Ergebnisse").Cells(9 * j + 4, 37).Value = Sheets("GP Robustheit Basis").Range("AB337")
Sheets("Ergebnisse").Cells(9 * j + 5, 37).Value = Sheets("GP Robustheit Basis").Range("AB338")
Sheets("Ergebnisse").Cells(9 * j + 6, 37).Value = Sheets("GP Robustheit Basis").Range("AB339")
Sheets("Ergebnisse").Cells(9 * j + 7, 37).Value = Sheets("GP Robustheit Basis").Range("AB340")
Sheets("Ergebnisse").Cells(9 * j + 0, 38).Value = Sheets("GP Robustheit").Range("AB333")
Sheets("Ergebnisse").Cells(9 * j + 1, 38).Value = Sheets("GP Robustheit").Range("AB334")
Sheets("Ergebnisse").Cells(9 * j + 2, 38).Value = Sheets("GP Robustheit").Range("AB335")
Sheets("Ergebnisse").Cells(9 * j + 3, 38).Value = Sheets("GP Robustheit").Range("AB336")
Sheets("Ergebnisse").Cells(9 * j + 4, 38).Value = Sheets("GP Robustheit").Range("AB337")
Sheets("Ergebnisse").Cells(9 * j + 5, 38).Value = Sheets("GP Robustheit").Range("AB338")
Sheets("Ergebnisse").Cells(9 * j + 6, 38).Value = Sheets("GP Robustheit").Range("AB339")
Sheets("Ergebnisse").Cells(9 * j + 7, 38).Value = Sheets("GP Robustheit").Range("AB340")
Sheets("Ergebnisse").Cells(9 * j + 0, 39).Value = Sheets("GP Robustheit Basis").Range("AE333")
Sheets("Ergebnisse").Cells(9 * j + 1, 39).Value = Sheets("GP Robustheit Basis").Range("AE334")
Sheets("Ergebnisse").Cells(9 * j + 2, 39).Value = Sheets("GP Robustheit Basis").Range("AE335")
Sheets("Ergebnisse").Cells(9 * j + 3, 39).Value = Sheets("GP Robustheit Basis").Range("AE336")
Sheets("Ergebnisse").Cells(9 * j + 4, 39).Value = Sheets("GP Robustheit Basis").Range("AE337")
Sheets("Ergebnisse").Cells(9 * j + 5, 39).Value = Sheets("GP Robustheit Basis").Range("AE338")
Sheets("Ergebnisse").Cells(9 * j + 6, 39).Value = Sheets("GP Robustheit Basis").Range("AE339")
Sheets("Ergebnisse").Cells(9 * j + 7, 39).Value = Sheets("GP Robustheit Basis").Range("AE340")
Sheets("Ergebnisse").Cells(9 * j + 0, 40).Value = Sheets("GP Robustheit").Range("AE333")
Sheets("Ergebnisse").Cells(9 * j + 1, 40).Value = Sheets("GP Robustheit").Range("AE334")
Sheets("Ergebnisse").Cells(9 * j + 2, 40).Value = Sheets("GP Robustheit").Range("AE335")
Sheets("Ergebnisse").Cells(9 * j + 3, 40).Value = Sheets("GP Robustheit").Range("AE336")
Sheets("Ergebnisse").Cells(9 * j + 4, 40).Value = Sheets("GP Robustheit").Range("AE337")
Sheets("Ergebnisse").Cells(9 * j + 5, 40).Value = Sheets("GP Robustheit").Range("AE338")
Sheets("Ergebnisse").Cells(9 * j + 6, 40).Value = Sheets("GP Robustheit").Range("AE339")
Sheets("Ergebnisse").Cells(9 * j + 7, 40).Value = Sheets("GP Robustheit").Range("AE340")
Sheets("Ergebnisse").Cells(9 * j + 0, 41).Value = Sheets("GP Robustheit Basis").Range("AH333")
Sheets("Ergebnisse").Cells(9 * j + 1, 41).Value = Sheets("GP Robustheit Basis").Range("AH334")
Sheets("Ergebnisse").Cells(9 * j + 2, 41).Value = Sheets("GP Robustheit Basis").Range("AH335")
Sheets("Ergebnisse").Cells(9 * j + 3, 41).Value = Sheets("GP Robustheit Basis").Range("AH336")
Sheets("Ergebnisse").Cells(9 * j + 4, 41).Value = Sheets("GP Robustheit Basis").Range("AH337")
Sheets("Ergebnisse").Cells(9 * j + 5, 41).Value = Sheets("GP Robustheit Basis").Range("AH338")
Sheets("Ergebnisse").Cells(9 * j + 6, 41).Value = Sheets("GP Robustheit Basis").Range("AH339")
Sheets("Ergebnisse").Cells(9 * j + 0, 42).Value = Sheets("GP Robustheit").Range("AH333")
Sheets("Ergebnisse").Cells(9 * j + 1, 42).Value = Sheets("GP Robustheit").Range("AH334")
Sheets("Ergebnisse").Cells(9 * j + 2, 42).Value = Sheets("GP Robustheit").Range("AH335")
Sheets("Ergebnisse").Cells(9 * j + 3, 42).Value = Sheets("GP Robustheit").Range("AH336")
Sheets("Ergebnisse").Cells(9 * j + 4, 42).Value = Sheets("GP Robustheit").Range("AH337")
Sheets("Ergebnisse").Cells(9 * j + 5, 42).Value = Sheets("GP Robustheit").Range("AH338")
Sheets("Ergebnisse").Cells(9 * j + 6, 42).Value = Sheets("GP Robustheit").Range("AH339")
Sheets("Ergebnisse").Cells(9 * j + 0, 44).Value = Sheets("GP Robustheit Basis").Range("B333") -  _
Range("B333")
Sheets("Ergebnisse").Cells(9 * j + 0, 45).Value = Sheets("GP Robustheit Basis").Range("E333") -  _
Range("E333")
Sheets("Ergebnisse").Cells(9 * j + 1, 45).Value = Sheets("GP Robustheit Basis").Range("E334") -  _
Range("E334")
Sheets("Ergebnisse").Cells(9 * j + 0, 46).Value = Sheets("GP Robustheit Basis").Range("H333") -  _
Range("H333")
Sheets("Ergebnisse").Cells(9 * j + 0, 47).Value = Sheets("GP Robustheit Basis").Range("K333") -  _
Range("K333")
Sheets("Ergebnisse").Cells(9 * j + 1, 47).Value = Sheets("GP Robustheit Basis").Range("K334") -  _
Range("K334")
Sheets("Ergebnisse").Cells(9 * j + 0, 48).Value = Sheets("GP Robustheit Basis").Range("N333") -  _
Range("N333")
Sheets("Ergebnisse").Cells(9 * j + 1, 48).Value = Sheets("GP Robustheit Basis").Range("N334") -  _
Range("N334")
Sheets("Ergebnisse").Cells(9 * j + 2, 48).Value = Sheets("GP Robustheit Basis").Range("N335") -  _
Range("N335")
Sheets("Ergebnisse").Cells(9 * j + 3, 48).Value = Sheets("GP Robustheit Basis").Range("N336") -  _
Range("N336")
Sheets("Ergebnisse").Cells(9 * j + 4, 48).Value = Sheets("GP Robustheit Basis").Range("N337") -  _
Range("N337")
Sheets("Ergebnisse").Cells(9 * j + 0, 49).Value = Sheets("GP Robustheit Basis").Range("Q333") -  _
Range("Q333")
Sheets("Ergebnisse").Cells(9 * j + 1, 49).Value = Sheets("GP Robustheit Basis").Range("Q334") -  _
Range("Q334")
Sheets("Ergebnisse").Cells(9 * j + 2, 49).Value = Sheets("GP Robustheit Basis").Range("Q335") -  _
Range("Q335")
Sheets("Ergebnisse").Cells(9 * j + 3, 49).Value = Sheets("GP Robustheit Basis").Range("Q336") -  _
Range("Q336")
Sheets("Ergebnisse").Cells(9 * j + 4, 49).Value = Sheets("GP Robustheit Basis").Range("Q337") -  _
Range("Q337")
Sheets("Ergebnisse").Cells(9 * j + 0, 50).Value = Sheets("GP Robustheit Basis").Range("T333") -  _
Range("T333")
Sheets("Ergebnisse").Cells(9 * j + 1, 50).Value = Sheets("GP Robustheit Basis").Range("T334") -  _
Range("T334")
Sheets("Ergebnisse").Cells(9 * j + 2, 50).Value = Sheets("GP Robustheit Basis").Range("T335") -  _
Range("T335")
Sheets("Ergebnisse").Cells(9 * j + 3, 50).Value = Sheets("GP Robustheit Basis").Range("T336") -  _
Range("T336")
Sheets("Ergebnisse").Cells(9 * j + 4, 50).Value = Sheets("GP Robustheit Basis").Range("T337") -  _
Range("T337")
Sheets("Ergebnisse").Cells(9 * j + 5, 50).Value = Sheets("GP Robustheit Basis").Range("T338") -  _
Range("T338")
Sheets("Ergebnisse").Cells(9 * j + 0, 51).Value = Sheets("GP Robustheit Basis").Range("W333") -  _
Range("W333")
Sheets("Ergebnisse").Cells(9 * j + 1, 51).Value = Sheets("GP Robustheit Basis").Range("W334") -  _
Range("W334")
Sheets("Ergebnisse").Cells(9 * j + 2, 51).Value = Sheets("GP Robustheit Basis").Range("W335") -  _
Range("W335")
Sheets("Ergebnisse").Cells(9 * j + 3, 51).Value = Sheets("GP Robustheit Basis").Range("W336") -  _
Range("W336")
Sheets("Ergebnisse").Cells(9 * j + 4, 51).Value = Sheets("GP Robustheit Basis").Range("W337") -  _
Range("W337")
Sheets("Ergebnisse").Cells(9 * j + 5, 51).Value = Sheets("GP Robustheit Basis").Range("W338") -  _
Range("W338")
Sheets("Ergebnisse").Cells(9 * j + 6, 51).Value = Sheets("GP Robustheit Basis").Range("W339") -  _
Range("W339")
Sheets("Ergebnisse").Cells(9 * j + 0, 52).Value = Sheets("GP Robustheit Basis").Range("Z333") -  _
Range("Z333")
Sheets("Ergebnisse").Cells(9 * j + 1, 52).Value = Sheets("GP Robustheit Basis").Range("Z334") -  _
Range("Z334")
Sheets("Ergebnisse").Cells(9 * j + 2, 52).Value = Sheets("GP Robustheit Basis").Range("Z335") -  _
Range("Z335")
Sheets("Ergebnisse").Cells(9 * j + 3, 52).Value = Sheets("GP Robustheit Basis").Range("Z336") -  _
Range("Z336")
Sheets("Ergebnisse").Cells(9 * j + 4, 52).Value = Sheets("GP Robustheit Basis").Range("Z337") -  _
Range("Z337")
Sheets("Ergebnisse").Cells(9 * j + 5, 52).Value = Sheets("GP Robustheit Basis").Range("Z338") -  _
Range("Z338")
Sheets("Ergebnisse").Cells(9 * j + 6, 52).Value = Sheets("GP Robustheit Basis").Range("Z339") -  _
Range("Z339")
Sheets("Ergebnisse").Cells(9 * j + 7, 52).Value = Sheets("GP Robustheit Basis").Range("Z340") -  _
Range("Z340")
Sheets("Ergebnisse").Cells(9 * j + 0, 53).Value = Sheets("GP Robustheit Basis").Range("AC333") - _
Range("AC333")
Sheets("Ergebnisse").Cells(9 * j + 1, 53).Value = Sheets("GP Robustheit Basis").Range("AC334") - _
Range("AC334")
Sheets("Ergebnisse").Cells(9 * j + 2, 53).Value = Sheets("GP Robustheit Basis").Range("AC335") - _
Range("AC335")
Sheets("Ergebnisse").Cells(9 * j + 3, 53).Value = Sheets("GP Robustheit Basis").Range("AC336") - _
Range("AC336")
Sheets("Ergebnisse").Cells(9 * j + 4, 53).Value = Sheets("GP Robustheit Basis").Range("AC337") - _
Range("AC337")
Sheets("Ergebnisse").Cells(9 * j + 5, 53).Value = Sheets("GP Robustheit Basis").Range("AC338") - _
Range("AC338")
Sheets("Ergebnisse").Cells(9 * j + 6, 53).Value = Sheets("GP Robustheit Basis").Range("AC339") - _
Range("AC339")
Sheets("Ergebnisse").Cells(9 * j + 7, 53).Value = Sheets("GP Robustheit Basis").Range("AC340") - _
Range("AC340")
Sheets("Ergebnisse").Cells(9 * j + 0, 54).Value = Sheets("GP Robustheit Basis").Range("AF333") - _
Range("AF333")
Sheets("Ergebnisse").Cells(9 * j + 1, 54).Value = Sheets("GP Robustheit Basis").Range("AF334") - _
Range("AF334")
Sheets("Ergebnisse").Cells(9 * j + 2, 54).Value = Sheets("GP Robustheit Basis").Range("AF335") - _
Range("AF335")
Sheets("Ergebnisse").Cells(9 * j + 3, 54).Value = Sheets("GP Robustheit Basis").Range("AF336") - _
Range("AF336")
Sheets("Ergebnisse").Cells(9 * j + 4, 54).Value = Sheets("GP Robustheit Basis").Range("AF337") - _
Range("AF337")
Sheets("Ergebnisse").Cells(9 * j + 5, 54).Value = Sheets("GP Robustheit Basis").Range("AF338") - _
Range("AF338")
Sheets("Ergebnisse").Cells(9 * j + 6, 54).Value = Sheets("GP Robustheit Basis").Range("AF339") - _
Range("AF339")
End If
Sheets("Ergebnisse").Range("B1").Value = j
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Schleifen Problem
21.08.2015 19:45:04
Michael
Hi Julia559,
wenn Du schon meinen Kommentar mit "Notnagel" im Code stehen läßt, solltest Du ihn auch verwenden.
Der ganze Code ist mir zu unübersichtlich, um das alles ins Blaue hinein zu testen.
Der erste Eindruck ist aber, daß Du mit einer "fußgesteuerten" Schleife (die Abbruchbedingung steht unten) nicht glücklich wirst: i wird immer mindestens 1 Mal hochgezählt und hat insofern auch IMMER einen Wert von mindestens 1, so daß Deine If nach der Schleife immer WAHR ist.
Beispiel zum Testen:
Sub schleifen()
Dim i&
Dim ups As Boolean
ups = True
i = 0
Do
ups = False
i = i + 1
Loop While ups And i 
Versuche doch ne Kombination von While - Wend.
Schöne Grüße,
Michael

Anzeige
entschuldigung, hab mich verschaut!
21.08.2015 20:38:41
Michael
Hi Julia559,
sorry, hab mich verschaut, irgendwie bin ich von ..E-15 ausgegangen...
Aber es wäre trotzdem nett, wenn Du ne Beispieldatei basteln könntest, mit der man was nachvollziehen kann.
Schöne Grüße,
Michael
P.S.: Ich glaub, ich hab's:
Deine Formulierung der Abbruchbedingung ist zwar mathematisch nachvollziehbar, aber Excel "denkt" da anders:
Sub test()
If (5 > 3 > 1) Then
MsgBox "1.: ok"
Else
MsgBox "1.: " & (5 > 3 > 1)
End If
If (5 > 3) And (3 > 1) Then
MsgBox "2.: " & ((5 > 3) And (3 > 1))
Else
MsgBox "2.: " & ((5 > 3) And (3 > 1))
End If
End Sub
X rechnet von links nach rechts, d.h. aus dem ersten
Vergleich: 5 > 3 wird ein WAHRHEITSWERT gebildet, der
dann mit > 1 verglichen wird!

Anzeige
AW: entschuldigung, hab mich verschaut!
21.08.2015 22:44:47
Julia559
Hallo Michael,
vielen vielen Dank für den Tipp. Ich habe es ausprobiert und es liegt tatsächlich an der Bedingung. Gekürzt sieht der Code wie folgt aus... Er funktioniert nun auch so, wie er soll. Allerdings hört die Schleife nicht bei 0,0000 auf, sondern bei -0,0001, d.h. sie läuft genau einmal zu viel. Hast du noch eine Idee, wie ich das in dem Code anpassen könnte?
Vielen Dank für deine Hilfe.
Julia
Sub test()
Sheets("GP Robustheit").Select
Do While (Range("AH336").Value 

Mal ins Blaue,
22.08.2015 13:09:37
Michael
Julia,
offensichtlich kommt der Rattenschwanz an Bedingungen nach dem While nicht zum Zug, wenn die "Endwerte" von C212/C213 tatsächlich erreicht bzw. überschritten werden.
Also liegt der Knackpunkt bei...
If Range("C212") = 0 Or Range("C212") = 1 Then

... und da hast Du einen Hund drin, denn die hochgezählte Zelle ist C213, im If steht aber rechts C212.
Wenn es das war, soll's mir recht sein, ansonsten schreib mir bitte noch, welche Werte die beiden Zellen vor Beginn der Schleife haben.
Schöne Grüße,
Michael
P.S.: Da es wirklich viele Berechnungen sind, würde ich hie und da etwas optimieren, aber ich sende erst Mal die Antwort ab - melde Dich halt noch mal.

Anzeige
Nachtrag
22.08.2015 16:18:27
Michael
Hi Julia,
jetzt habe ich doch mit der Optimierung (Teil A) herumgespielt, und dabei ist mir aufgefallen, daß der 0-Wert ja nie exakt erreicht wird: in Deinem Code ganz oben hast Du ja dementsprechend nach der Schleife mit
If i > 1E+15 Then
weitergearbeitet.
Wenn nun die zwei Umstände zusammenkommen, daß Du wie oben nur auf C212 prüfst und C213 vergißt, ist mir klar, daß mit
If Range("C212") = 0 Or Range("C212") = 1 Then
die Abbruchbedingung "nie" erreicht wird.
Anbei ne Datei mit verschiedenen, schrittweisen Optimierungen, die im Modul von unten nach oben und im Blatt von oben nach unten angeordnet sind.
Rufe die Subs mal der Reihe nach auf, und wenn Du sie alle ausgeführt hast, wirst Du ein Optimierungsergebnis in der Größenordnung von 300 sehen.
Um das einzubauen, ist allerdings je nach Komplexität Deiner Berechnung doch etwas Arbeit nötig.
Die Ausgabe ist irrwitzig umfangreich, aber mir ist auf Anhieb keine mathematische Gesetzmäßigkeit eingefallen. Naja, die ist ja auch nicht sooo zeitkritisch.
Nur so viel: Du notierst standardmäßig etwa ...
Sheets("Ergebnisse").Cells(9 * j + 0, 2).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 0, 3).Value = "Iterationen: " & i
Sheets("Ergebnisse").Cells(9 * j + 1, 3).Value = "Iterationen: " & i

... wobei "Iterationen: " & i zumindest im ersten Zweig IMMER vorkommt, und 9*j insgesamt IMMER.
Beides erfordert jeweils eine Rechenoperation. Was hindert Dich dran, zwei Variablen einzuführen:
DIM ausgabe as String
DIM j9 as long
und vor der Ausgabe zu schreiben:
ausgabe = "Iterationen: " & i
j9 = 9 * j
und dann weiter:
Sheets("Ergebnisse").Cells(j9 + 0, 2).Value = ausgabe
' usw.
Die Datei: https://www.herber.de/bbs/user/99773.xls
Schöne Grüße,
Michael

Anzeige
AW: Nachtrag
23.08.2015 22:26:25
Julia559
Hallo Michael,
erst einmal vielen Dank für deine Tipps und Ratschläge. Da der ganze Code wirklich sehr umfangreich und komplex wurde, habe ich mir nun die Mühe gemacht, einen neuen Code zu schreiben. Nun funktioniert alles wie gewollt. Ich hatte wirklich einige Bestandteile in dem Code, die ich gar nicht brauchte.
Vielen Dank noch einmal.
Liebe Grüße,
Julia

freut mich, danke für die Rückmeldung,
24.08.2015 15:20:17
Michael
Julia,
ich habe gestern noch ein bißchen herumgespielt und doch was gefunden, was die Ausgabe vereinfachen könnte.
Ich lade Dir die Datei einfach mal kommentarlos hoch: https://www.herber.de/bbs/user/99804.xls
Von wegen kommentarlos.
Also:
1. habe ich mir angesehen, wie die Ausgaben aussehen, indem ich einfach Zellen gefärbt habe, unter Zuhilfenahme der "extrahierten" Spalten- und Zeilennummern: internes Blatt: Sub malSchauen
2. Das siehst Du unter "Ergebnisse", und hier fallen denn schon Gesetzmäßigkeiten auf...
3. ... so daß man Zuweisungen entweder anhand einer Zeilen-/Spalten-Liste vornehmen kann
(internes Blatt Sub WerteZuweisen() - sieh Dir bitte "Ergebnisse (2)" an, starte das Makro und sieh es Dir nochmal an) oder ...
4. die Zellen, denen Werte zugewiesen werden sollen, "grafisch" mit einem "x" versieht, und zwar in "internes_Blatt_Grafisch", aus dem sich das dazugehörige Makro Sub WerteZuweisenGrafisch() in "Ergebnisse (3)" die passenden Werte holt und die Zuweisungen erledigt.
Der Punkt dabei ist, daß der Code für die Ausgabe nur aus ein paar wenigen Zeilen besteht: das ist weniger fehleranfällig und viel übersichtlicher:
Sub WerteZuweisenGrafisch()
Dim aus As Variant
Dim j9 As Long, i As Long
Dim spalte As Long, zeilenDiff As Long
Dim c As Range
Const vonzeile = 333
zeilenDiff = vonzeile - 9
For Each c In Sheets("internes_Blatt_Grafisch").Range("B9:L16")
If c.Value = "x" Then
spalte = 2 * c.Column - 4
Sheets("Ergebnisse (3)").Range(c.Address).Value = _
Sheets("Ergebnisse (3)").Range(c.Address).Offset(zeilenDiff, spalte).Value
End If
Next
End Sub
Das nur als weiteren Gedankenanstoß.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige