14.09.2020, 00:11
Hallo zusammen,
ich habe eine wahrscheinlich simple Frage, die ich aber nicht zufriedenstellend gelöst bekomme. Ich habe nachfolgenden Code erstelle (Auszug):
Was ich nicht verstehe ist folgendes: Gehe ich den Code durch und lande in der ersten "If-Bedingung", springt er (wenn diese nicht erfüllt wird) automatisch in die nächste "ElseIf" Zeile. Soll ja auch so sein.
Wird die erste "If-Bedingung" jedoch erfüllt, und er springt in die nächste "If"-Bedingung darunter (hier Prüfung ob Wörter "Fussball" und "Handball" vorhanden), springt er anschließend wenn diese Bedingung nicht erfüllt wird nicht zur nächsten "ElseIf" Zeile, sondern an das Ende des Codes. Wie kann ich das korrigieren?
Was eine Möglichkeit wäre, ist es wie folgt anzupassen:
Es wurmt mich allerdings, dass ich es mit dem ersten Ansatz nicht gelöst bekomme und bei vielen "Und"-Verknüpfungen wird es dann ja auch irgendwann ziemlich unübersichtlich.
Das geht doch bestimmt auch mit dem ersten Ansatz, oder?
Viele Grüße
Sebbo
ich habe eine wahrscheinlich simple Frage, die ich aber nicht zufriedenstellend gelöst bekomme. Ich habe nachfolgenden Code erstelle (Auszug):
Code:
Sub Auswerten()
Dim i As Integer
Dim jx As Integer
For i = 1 To 10
For jx = 1 To 10
If Worksheets("Tabelle1").Cells(jx, 30) = Worksheets("Tabelle1").Cells(i, 12) Then
If Worksheets("Tabelle1").Cells(i, 9) = "Fussball" And Worksheets("Tabelle1").Cells(i, 10) = "Handball" Then
If Worksheets("Tabelle1").Cells(jx, 32) = "x" Then
Worksheets("Tabelle1").Cells(i, 16) = "Rasen"
Worksheets("Tabelle1").Cells(i, 17) = "Tor"
End If
End If
ElseIf Worksheets("Tabelle1").Cells(jx, 30) = Worksheets("Tabelle1").Cells(i, 12) Then
If Worksheets("Tabelle1").Cells(i, 9) = "Tennis" And Worksheets("Tabelle1").Cells(i, 10) = "Tischtennis" Then
If Worksheets("Tabelle1").Cells(jx, 35) = "x" Then
Worksheets("Tabelle1").Cells(i, 16) = "Schläger"
Worksheets("Tabelle1").Cells(i, 17) = "Netz"
End If
End If
Else
End If
Next
Next
End Sub
Was ich nicht verstehe ist folgendes: Gehe ich den Code durch und lande in der ersten "If-Bedingung", springt er (wenn diese nicht erfüllt wird) automatisch in die nächste "ElseIf" Zeile. Soll ja auch so sein.
Wird die erste "If-Bedingung" jedoch erfüllt, und er springt in die nächste "If"-Bedingung darunter (hier Prüfung ob Wörter "Fussball" und "Handball" vorhanden), springt er anschließend wenn diese Bedingung nicht erfüllt wird nicht zur nächsten "ElseIf" Zeile, sondern an das Ende des Codes. Wie kann ich das korrigieren?
Was eine Möglichkeit wäre, ist es wie folgt anzupassen:
Code:
Sub Auswerten()
Dim i As Integer
Dim jx As Integer
For i = 1 To 10
For jx = 1 To 10
If Worksheets("Tabelle1").Cells(jx, 30) = Worksheets("Tabelle1").Cells(i, 12) And Worksheets("Tabelle1").Cells(i, 9) = "Fussball" And Worksheets("Tabelle1").Cells(i, 10) = "Handball" And Worksheets("Tabelle1").Cells(jx, 32) = "x" Then
Worksheets("Tabelle1").Cells(i, 16) = "Rasen"
Worksheets("Tabelle1").Cells(i, 17) = "Tor"
ElseIf Worksheets("Tabelle1").Cells(jx, 30) = Worksheets("Tabelle1").Cells(i, 12) And Worksheets("Tabelle1").Cells(i, 9) = "Tennis" And Worksheets("Tabelle1").Cells(i, 10) = "Tischtennis" And Worksheets("Tabelle1").Cells(jx, 35) = "x" Then
Worksheets("Tabelle1").Cells(i, 16) = "Schläger"
Worksheets("Tabelle1").Cells(i, 17) = "Netz"
Else
End If
Next
Next
End Sub
Es wurmt mich allerdings, dass ich es mit dem ersten Ansatz nicht gelöst bekomme und bei vielen "Und"-Verknüpfungen wird es dann ja auch irgendwann ziemlich unübersichtlich.
Das geht doch bestimmt auch mit dem ersten Ansatz, oder?
Viele Grüße
Sebbo