Hallo Zusammen,
ich habe ein kleines Schleifenproblem und komme leider nicht weiter. Ich programmiere auch erst seit kurzer Zeit für VBA und kenne mich daher noch nicht so gut aus. Das ist mein Code:
Im großen und ganzen sollen die Inhalte der Felder A1 bis A3 verändert werden, und zwar in Abhängigkeit von Werten in B6 bis C7 in Verbindung mit Werten aus A1 bis C1 (wenn dort Werte drin stehen). Das Wäre dann der erste Durchgang.
Im zweiten Durchgang sollen die Inhalte der Felder E1 bis E3 ausgefüllt werden, und zwar in Abhängigkeit von Werten in F6 bis G7 in Verbindung mit Werten aus E1 bis E3 (wenn dort Werte drin stehen). Irgendwie bekomm ich VBA nicht dazu, dass der Code erst für den ersten Zellenblock abgearbeitet wird, also A1 bis A3 und B6 bis C7 und dann nochmal komplett für den Zellenblock von E1 bis E3 und F6 bis G7. So wie es jetzt ist, wird es vermischt. Ich vermute, dass es an den Schleifen liegt, komme aber gerade nicht drauf, was ich falsch mache. Hat jemand eine Idee?
ich habe ein kleines Schleifenproblem und komme leider nicht weiter. Ich programmiere auch erst seit kurzer Zeit für VBA und kenne mich daher noch nicht so gut aus. Das ist mein Code:
Quellcode
- Sub test1()
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- For i = 1 To 5 Step 4
- For j = 2 To 6 Step 4
- For k = 3 To 7 Step 4
- Con1 = Cells(6, j) / Cells(6, k)
- Con2 = Cells(7, j) / Cells(7, k)
- Con3 = "MA Cross"
- Con4 = "Trigger active"
- Con5 = "Buy Long"
- Con6 = "Stay Long"
- Con7 = "Exit Long"
- Con8 = ""
- If Cells(3, i) = Con7 And Con1 < 1 Then
- Cells(3, i) = Con8
- ElseIf (Cells(1, i) = Con5 And Con1 < 1) Or (Cells(1, i) = Con6 And Con1 < 1) Then
- Cells(3, i) = Con7
- ElseIf Cells(1, i) = Con6 And Con1 > 1 Then
- Cells(1, i) = Con6
- ElseIf Cells(1, i) = Con5 And Con1 > 1 Then
- Cells(1, i) = Con6
- ElseIf (Cells(2, i) = Con3 And Con1 >= 1.03) Or (Cells(2, i) = Con4 And Con1 >= 1.03) Then
- Cells(1, i) = Con5
- ElseIf (Cells(2, i) = Con3 And Con1 < 1) Or (Cells(2, i) = Con4 And Con1 < 1) Then
- Cells(2, i) = Con8
- ElseIf Cells(2, i) = Con4 And Con1 < 1.03 And Con1 > 1 Then
- Cells(2, i) = Con4
- ElseIf Cells(2, i) = Con3 And Con1 < 1.03 And Con1 > 1 Then
- Cells(2, i) = Con4
- ElseIf Con1 < 1.03 And Con1 > 1 And Con2 < 1 Then
- Cells(2, i) = Con3
- ElseIf Con1 >= 1.03 And Con2 < 1 Then
- Cells(1, 1) = Con5
- End If
- If Cells(1, i) = Con5 Then
- Cells(2, i) = Con8
- End If
- If Cells(3, i) = Con7 Then
- Cells(1, i) = Con8
- End If
- If Cells(2, i) = Con3 Then
- Cells(3, i) = Con8
- End If
- Next k
- Next j
- Next i
- End Sub
Im großen und ganzen sollen die Inhalte der Felder A1 bis A3 verändert werden, und zwar in Abhängigkeit von Werten in B6 bis C7 in Verbindung mit Werten aus A1 bis C1 (wenn dort Werte drin stehen). Das Wäre dann der erste Durchgang.
Im zweiten Durchgang sollen die Inhalte der Felder E1 bis E3 ausgefüllt werden, und zwar in Abhängigkeit von Werten in F6 bis G7 in Verbindung mit Werten aus E1 bis E3 (wenn dort Werte drin stehen). Irgendwie bekomm ich VBA nicht dazu, dass der Code erst für den ersten Zellenblock abgearbeitet wird, also A1 bis A3 und B6 bis C7 und dann nochmal komplett für den Zellenblock von E1 bis E3 und F6 bis G7. So wie es jetzt ist, wird es vermischt. Ich vermute, dass es an den Schleifen liegt, komme aber gerade nicht drauf, was ich falsch mache. Hat jemand eine Idee?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mack“ ()