23.02.2017, 10:35
Hallo,
die Prüfung der Listboxen hast Du nicht richtig. Meine Anmerkungen hast Du nicht umgestzt.
Man prüft ob eine Listbox Inhalte hat, in dem man den Listcount feststellt, also über die Anzahl der Listeneinträge. Bei 0 sind keine.
Diese Prüfung brauchst Du nicht, da Deine Listboxen ja bei Aufruf der Userform gefüllt werden.
Da Du statt Komboboxen, welche man in solchen Fällen eigentlich nutzt, Listboxen verwendest, ist natürlich etwas Sichtbar aber nicht ausgewählt.
Erst wenn etwas aus der Listbox etwas ausgewählt wurde, kann man es auch identifizieren.
Da hatte ich ja geschrieben, dass man dafür den Listindex prüft. Ist der > -1 dann ist ein Eintrag ausgewählt.
Zum Verständnis:
Listindex = 0 -> 1. Eintrag aus der Listbox
Listindex = 1 -> 2. Eintrag aus der Listbox usw.
Zu guter Letzt hoffe ich, dass meine Erklärungen irgendwann irgend jemandem nutzen.
Deswegen unten Dein Code mit den nötigen Änderungen:
Und Edgars Einlassung ist auch richtig, nur wenn eine Textbox keinen Inhalt hat, dann wird es an der Stelle wieder zum Fehler kommen.
Deshalb habe ich dass noch etwas angepasst. Mit Val() wird auch "" geschluckt.
die Prüfung der Listboxen hast Du nicht richtig. Meine Anmerkungen hast Du nicht umgestzt.
Man prüft ob eine Listbox Inhalte hat, in dem man den Listcount feststellt, also über die Anzahl der Listeneinträge. Bei 0 sind keine.
Diese Prüfung brauchst Du nicht, da Deine Listboxen ja bei Aufruf der Userform gefüllt werden.
Da Du statt Komboboxen, welche man in solchen Fällen eigentlich nutzt, Listboxen verwendest, ist natürlich etwas Sichtbar aber nicht ausgewählt.
Erst wenn etwas aus der Listbox etwas ausgewählt wurde, kann man es auch identifizieren.
Da hatte ich ja geschrieben, dass man dafür den Listindex prüft. Ist der > -1 dann ist ein Eintrag ausgewählt.
Zum Verständnis:
Listindex = 0 -> 1. Eintrag aus der Listbox
Listindex = 1 -> 2. Eintrag aus der Listbox usw.
Zu guter Letzt hoffe ich, dass meine Erklärungen irgendwann irgend jemandem nutzen.
Deswegen unten Dein Code mit den nötigen Änderungen:
Code:
Dim MsgStr As String
Dim IstSel As Boolean
Dim Lauf As Long
MsgStr = "" ' Für die Ausgabe der Hinweise
IstSel = False ' Ist schon ein Eingabefeld selectiert??
Lauf = 0 ' Anzahl der "Fehler"
If EdtDatum.Value = "" Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Datum vorm Speichern eingeben" & vbCrLf ' MsgStr aufbauen
EdtDatum.SetFocus
Exit Sub
End If
If lstTeam.ListIndex = -1 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Team auswählen" & vbCrLf ' MsgStr aufbauen
lstTeam.SetFocus
Exit Sub
End If
If lstFahrzeug.ListIndex = -1 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Fahrzeug auswählen" & vbCrLf ' MsgStr aufbauen
lstFahrzeug.SetFocus
Exit Sub
End If
If lstKennzeichen.ListIndex = -1 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Kennzeichen auswählen" & vbCrLf ' MsgStr aufbauen
lstKennzeichen.SetFocus
Exit Sub
End If
If lstTechnik.Value.ListIndex = -1 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Technik auswählen" & vbCrLf ' MsgStr aufbauen
lstTechnik.SetFocus
Exit Sub
End If
If edtKilometer.Value >= 999 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Kilometer eingeben" & vbCrLf ' MsgStr aufbauen
edtKilometer.SetFocus
Exit Sub
End If
If lstFahrer.Value = "" Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Fahrer eingeben" & vbCrLf ' MsgStr aufbauen
lstFahrer.SetFocus
Exit Sub
End If
If lstBeifahrer.Value = "" Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Beifahrer eingeben" & vbCrLf ' MsgStr aufbauen
lstBeifahrer.SetFocus
Exit Sub
End If
If Val(edtGesamtzeitBAB.Value) = 0 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Gesamtzeitstunden eingeben" & vbCrLf ' MsgStr aufbauen
edtGesamtzeitBAB.SetFocus
Exit Sub
End If
If Val(edtGesamtzeitAStr) = 0 Then ' Abfrage der einzelnen Felder
MsgBox CStr(Lauf) & ". Bitte Gesamtzeitstunden eingeben" & vbCrLf ' MsgStr aufbauen
edtGesamtzeitBAB.SetFocus
Exit Sub
End If
Speicherort
End Sub
Und Edgars Einlassung ist auch richtig, nur wenn eine Textbox keinen Inhalt hat, dann wird es an der Stelle wieder zum Fehler kommen.
Deshalb habe ich dass noch etwas angepasst. Mit Val() wird auch "" geschluckt.
Gruß Atilla