Do while zickt rum

Hallo,

wenn man innerhalb einer Do While Schleife (Excel VBA) mehrere Ifs hat, dann behauptet der Interpreter bei Loop angekommen es fehle ein Do While. Das hat er vor Einfügen der Ifs nicht getan.
Wie treibt man ihm solchen Unsinn aus? Unten ist die Struktur, die ich brauche:

Do While Bedingung1

If Bedingung2 Then
If Bedingung3 Then Aufgabe3
If Bedingung4 Then Aufgabe4
If Bedingung5 Then Aufgabe5
End If (Bedingung2)
Loop

Vielen Dank schonmal, Tychi

wenn man innerhalb einer Do While Schleife (Excel VBA) mehrere
Ifs hat, dann behauptet der Interpreter bei Loop angekommen es
fehle ein Do While. Das hat er vor Einfügen der Ifs nicht

Do While Bedingung1
If Bedingung2 Then
If Bedingung3 Then Aufgabe3
If Bedingung4 Then Aufgabe4
If Bedingung5 Then Aufgabe5
End If (Bedingung2)
Loop

Hallo Tychi,

ich kann da keinen Fehler entdecken.
Zeige mal den Originalcode.

Gruß
Reinhard

wenn man innerhalb einer Do While Schleife (Excel VBA) mehrere
Ifs hat, dann behauptet der Interpreter bei Loop angekommen es
fehle ein Do While. Das hat er vor Einfügen der Ifs nicht

Do While Bedingung1
If Bedingung2 Then
If Bedingung3 Then Aufgabe3
If Bedingung4 Then Aufgabe4
If Bedingung5 Then Aufgabe5
End If (Bedingung2)
Loop

Hallo Tychi,

ich kann da keinen Fehler entdecken.
Zeige mal den Originalcode.

Hallo Reinhard,

der sieht so aus:

Do While Sheets(„Tradelist“).Cells(i, 2) „“
If Sheets(„Tradelist“).Cells(i, 2) = Cells(4, j - 4) Then
SptDt = Sheets(„Tradelist“).Cells(i, 1)

If SptDt CpnDt And Cells(k, j) = „“ Then Cells(k, j) = 0

End If

i = i + 1
Loop

Hallo Reinhard,

das soll so funktionieren? Sind die Unterschiede zwischen VB6 und VBA so groß?

In VB gehört zu jedem

If a = b Then …

auch ein End If oder eben die Alternative Schreibweise in einer Zeile

Was im Originalcode gewollt ist, geht in Vb nur mit ElseIf …

If a = b Then

ElseIf a = c Then

ElseIf a = d Then

End If

Gruß Rainer

Hallo Rainer,

In VB gehört zu jedem
If a = b Then …
auch ein End If oder eben die Alternative Schreibweise in
einer Zeile

aber genau das ist doch erfüllt bei

If Bedingung2 Then
 If Bedingung3 Then Aufgabe3
 If Bedingung4 Then Aufgabe4
 If Bedingung5 Then Aufgabe5
End If (Bedingung2)

Houston, wir haben ein Problem *grien*

Was im Originalcode gewollt ist, geht in Vb nur mit ElseIf …

Ich weiß nicht ob das gewünscht ist.

Gruß
Reinhard

If Sheets(„Tradelist“).Cells(i, 2) = Cells(4, j - 4) Then
SptDt = Sheets(„Tradelist“).Cells(i, 1)
If SptDt CpnDt And Cells(k, j) = „“ Then Cells(k, j)
= 0
End If

Hallo Tychi,

gewöhn dir bitte an beim Posten den Pre-Tag zu benutzen, wird unterhalb des Eingabefensters erläutert, dann bleiben Codeeinrückungen erhalten.

Auch wenn mich grad Rainer schwer irritiert bleibe ich dabei, dein Pseudocode ist okay.

Nur, dein wahrer Code sieht als Pseudocode wie folgend aus und da fehlt eindeutig ein End If.

If Beding2 Then
 SptDt = irgendwas
 If Beding3 Then
 If Beding4 Then mache dies
 If Beding5 Then mache das
 If Beding6 Then mache jenes
 Hier muss ein End If hin
End If

Gruß
Reinhard

Hallo Reinhard,

ich habe es jetzt selbst hinbekommen. Nach jedem If habe ich ein End If eingefügt und unten auch noch eins und jetzt läufts. Danke trotzdem,

Tychi

Hallo,

ich versteh Euer Problem nicht …

In VB gehört zu jedem
If a = b Then …
auch ein End If oder eben die Alternative Schreibweise in
einer Zeile

aber genau das ist doch erfüllt bei

If Bedingung2 Then
If Bedingung3 Then Aufgabe3
If Bedingung4 Then Aufgabe4
If Bedingung5 Then Aufgabe5
End If (Bedingung2)

Ist es eben nicht!
Wie Rainer schon sagt, JEDES If braucht ein abschließendes End If.
Mehr gibts hier nicht zu sagen.
Also:

If Bedingung2 Then
 If Bedingung3 Then Aufgabe3 : End If
 If Bedingung4 Then Aufgabe4 : End If
 If Bedingung5 Then Aufgabe5 : End If
End If (Bedingung2)

Gruß,
Luke

Hallo Luke,

ich versteh Euer Problem nicht …

ich auch nicht, aber wohl aus anderen Beweggründen als du jetzt.

Ist es eben nicht!
Wie Rainer schon sagt, JEDES If braucht ein abschließendes End
If.
Mehr gibts hier nicht zu sagen.

O doch, ein einzeiliges IF…Then Anweisung braucht kein End If

Entweder habe ich schwer Recht oder stehe hier sehr schwer auf dem berühmten Schlauch :smile:

Gruß
Reinhard

Hallo Reinhard,

aber genau das ist doch erfüllt bei

If Bedingung2 Then
If Bedingung3 Then Aufgabe3
If Bedingung4 Then Aufgabe4
If Bedingung5 Then Aufgabe5
End If (Bedingung2)

Houston, wir haben ein Problem *grien*

ja, Du hast mal wieder Recht. :smile:
Nachdem ich 'ne Stunde geschlafen habe, sehe ich es auch.

Gruß Rainer

Hallo Reinhard,

O doch, ein einzeiliges IF…Then Anweisung braucht kein End
If

Entweder habe ich schwer Recht oder stehe hier sehr schwer auf
dem berühmten Schlauch :smile:

Du stehst nicht sehr schwer auf dem berühmten Schlauch, du hast schwer Recht. War mir neu daß einzeilige Bedingungen kein End If brauchen …

Gruß,
Luke

ich habe es jetzt selbst hinbekommen. Nach jedem If habe ich
ein End If eingefügt und unten auch noch eins und jetzt
läufts. Danke trotzdem,

Ein ENDIF hätte gereicht :wink:

LG Alex