Thema Datum  Von Nutzer Rating
Antwort
06.02.2022 02:22:37 Hans
NotSolved
06.02.2022 12:35:18 ralf_b
NotSolved
06.02.2022 13:43:13 Gast49872
NotSolved
06.02.2022 13:46:26 ralf_b
Solved
06.02.2022 14:14:15 Gast95737
NotSolved
Blau Zwei gegensätzliche Bedingungen
06.02.2022 14:19:39 Gast15888
NotSolved

Ansicht des Beitrags:
Von:
Gast15888
Datum:
06.02.2022 14:19:39
Views:
491
Rating: Antwort:
  Ja
Thema:
Zwei gegensätzliche Bedingungen

Grundlagen Bedingte (mehrfach-) Verzweigung:

If Bedingung1 Then
    Anweisung1

ElseIf Bedingung2 Then
    Anweisung2

ElseIf Bedingung3 Then
    Anweisung3

ElseIf ...
    ...

Else
   SonstAnweisung
End If

WeitereAnweisungen

Wenn Bedingung1 nicht wahr ist, wird Bedingung2 geprüft. Ist Bedingung2 nicht wahr, dann wird Bedingung3 geprüft... und so weiter.

Wenn alle Bedingungen vor dem Else nicht wahr sind, dann wird SonstAnweisung ausgeführt. UND dann geht es nach dem End If mit WeitereAnweisungen weiter.


Ein paar Anmerkungen zu deinem Code:

1) Dein Einrücken verwirrt beim lesen. Die markierten Zeilen sind unnötig eingerückt worden.

Sie müssten sich eigentlich auf der selben Einrückebene wie die davor stehende If Not ... Then befinden.

ElseIf IsEmpty(Worksheets("Test1").Cells(row_number, 2).Value) = True Then
            this_row = row_number + 1
            If Not IsEmpty(Worksheets("Test1").Cells(this_row, 2).Value) = True Then
                row_number = row_number + 4
                MsgBox "Im in Else!"
            End If
                MsgBox "Im in End If!"
                new_row = row_number + 1
                paste_row = "B" & CStr(new_row)
                Worksheets("Test2").Range("B3:K29").Cut Worksheets("Test1").Range(paste_row)
                t = 1000

2) Redundante Prüfung machen keinen Sinn.

In der ersten If prüfst du ob die Zelle Nicht Empty ist. Wenn das nicht der Fall ist, dann ist beim kommenden Else schon klar, das sie es ist und man muss das nicht noch mal prüfen (aus dem ElseIf würde also einfach ein Else werden).

    If Not IsEmpty(Worksheets("Test1").Cells(row_number, 2).Value) = True Then
        <Anweisung1>

    ElseIf IsEmpty(Worksheets("Test1").Cells(row_number, 2).Value) = True Then
        <Anweisung2>

2.1) Auch noch ein Punkt, den Anfänger häufig tun. wink

If Bedingung = True Then
    ...

Eine Bedingung ergibt entweder Wahr oder Falsch. Man muss das Wahr-Ergebnis nicht noch mal auf Wahr überprüfen (erneut, unnötige: Redundanz).

Weniger verwirrend und ausreichend:

If Bedingung Then
    ...

Der Einzige Fall wenn was dahinter kommt, ist wenn man den Falsch Zustand abfragen wöllte.

If Bedingung = False Then
    ...

Alternative Schreibweise:

If Not Bedingung Then
    ...

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.02.2022 02:22:37 Hans
NotSolved
06.02.2022 12:35:18 ralf_b
NotSolved
06.02.2022 13:43:13 Gast49872
NotSolved
06.02.2022 13:46:26 ralf_b
Solved
06.02.2022 14:14:15 Gast95737
NotSolved
Blau Zwei gegensätzliche Bedingungen
06.02.2022 14:19:39 Gast15888
NotSolved