HERBERS Excel-Forum - VBA-Basics

Thema: Wenn-Abfragen

Inhaltsverzeichnis
  • 1 Einfachste Abfrage
  • 2 Wenn-/Sonst-Abfrage
  • 3 Wenn-SonstWenn-Abfrage
  • 4 Select-Case-Abfrage
  • Einfachste Abfrage

    Wenn es sich beim aktuellen Tag um einen Sonntag handelt, wird eine entsprechende Meldung ausgegeben, wenn nicht, erfolgt keine Aktion.

    
    Sub WennSonntagMsg()
       If Weekday(Date) = 1 Then MsgBox "Heute ist Sonntag"
    End Sub
    

    Wenn-/Sonst-Abfrage

    In der Regel werden Wenn-/Sonst-Abfragen erstellt, um Verzweigungen zu ermöglichen. In Beispiel 2.2 wird bei WAHR die Sonntagsmeldung, bei FALSCH der aktuelle Wochentag ausgegeben.

    
    Sub WennSonntagOderMsg()
       If Weekday(Date) = 1 Then
          MsgBox "Heute ist Sonntag"
       Else
          MsgBox "Heute ist " & Format(Weekday(Date), "dddd")
       End If
    End Sub
    

    Wenn-SonstWenn-Abfrage

    Über ElseIf können weitere Bedingungen mit entsprechenden Verzweigungen angefügt werden.

    
    Sub WennSonntagSonstMsg()
       If Weekday(Date) = 1 Then
          MsgBox "Heute ist Sonntag"
       ElseIf Weekday(Date) = 7 Then
          MsgBox "Heute ist Samstag"
       Else
          MsgBox "Heute ist " & Format(Weekday(Date), "dddd")
       End If
    End Sub
    

    Select-Case-Abfrage

    Bei mehr als zwei Bedingungen empfiehlt sich meist - wenn möglich - die SelectCase-Prüfung einzusetzen. Der vorliegende Fall wird eingelesen und danach schrittweise auf seinen Wahrheitsgehalt geprüft.

    
    
    Sub PruefeFallMsg()
       Select Case Weekday(Date)
          Case 1, 7: MsgBox "Heute ist kein Arbeitstag"
          Case 2: MsgBox "Heute ist Montag"
          Case 3: MsgBox "Heute ist Dienstag"
          Case 4: MsgBox "Heute ist Mittwoch"
          Case 5: MsgBox "Heute ist Donnerstag"
          Case 6: MsgBox "Heute ist Freitag"
       End Select
    End Sub