Sub Pruefe()
    
    ' Es wir dmit dieser Prozedur geprüft, ob noch zu einer Bahn ein Fragezeichen eingetragen ist.
    ' Leere Textboxen wurden bereits an anderer Stelle abgefangen.
    
    ' Dim c legt eine Variable an, die in jedem Durchlauf der folgenden Schleife die Textbox
    ' der jeweiligen Bahn repräsentiert.
    Dim c As Control
    
    ' Die folgende Schleife schaut sich alle Controls des Formulars an (Textboxen, Schltflächen etc.)
    ' "Me" ist dabei diese Userform selbst.
    For Each c In Me.Controls
        ' Wenn der Name des gerade untersuchten Elements mit "Bahn" beginnt,  ...
        If Left(c.Name, 4) = "Bahn" Then
            ' ... und wenn dann auch noch der Text ein "?" ist, dann ...
            If c.Text = "?" Then
                ' ... wird eine Meldung gezeigt (das "& vbnewline," kann weg!), und ...
                MsgBox "Eintrag nicht vollständig" & vbNewLine, vbCritical, "Fehler"
                ' ... verlasse diese Prozedur. Wenn da stattdessen "End" steht, wird jeglicher VBA-Code beendet.
                Exit Sub
            End If
        ' Hier geht es weiter, wenn in diesem Element-Text kein "?" angetroffen wird.
        End If
    ' Hier geht es weiter, wenn der Name des Elements nicht mit "Bahn" beginnt.
    Next
    '
    ' Wenn alle Überprüfungen erfolgreich waren, gibt es noch 2 Meldungen (können weg).
    MsgBox "Überprüfung erfolgreich.", vbInformation, "Prüfung"
    ' Man kann im Code lange Zeilen trennen, indem man an passender Stelle (hier hinter einem "&")
    ' ein Leerzeichen direkt gefolgt von einem Unterstrich un einer Zeilenschlaltung einfügt.
    MsgBox "für den Eintrag ist gerade das folgende Blatt aktiviert:" & _
        vbNewLine & ActiveSheet.Name
End Sub
	  
     |