Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus UserForm nur übertragen wenn Bedingung erfüllt ist

Daten aus UserForm nur übertragen wenn Bedingung erfüllt ist
17.01.2020 15:36:04
Max
Hallo zusammen
Bei folgender Herausforderung komme ich in meinem VBA-Code nicht mehr weiter.
Ausgangslage:
In UserForm1 werden Daten in TextBoxen und ComboBoxen etc. eingetragen.
Bei fehlerhaften oder fehlenden Eingaben kommt jeweils eine MsgBox
Nach dem die Daten eingetragen wurden, werden sie mittels "CommandButton" in ein Arbeitsblatt übertragen.
In TextBox3 wird ein Datum eingegeben.
Das Datum muss zwingend in der Zukunft liegen, also min. Heute +1.
Herausforderung:
Wenn das erfasste Datum die genannte Bedingung nicht erfüllt und der CommandButton zur Übertragung ins Arbeitsblatt gedrückt wird, erscheint zwar die Meldung, dass das Datum die Bedingung nicht erfüllt, die Inhalte werden jedoch trotzdem in das Arbeitsblatt kopiert.
--> Die Inhalte der UserForm sollen erst kopiert werden, sobald alle Bedingungen der einzelnen Steuerelemente erfüllt sind.
Wie kriege ich es hin, dass Excel nach erfolgter Überprüfung des Datums in einen Loop geht, sofern das Datum die Bedingungen (Format und Heute + 1) nicht erfüllt?
Hier mein Code:
Private Sub CommandButton1_Click()
Dim cell As Range
Dim a As Long
Dim lbMsg As Byte
Dim StartZeile As Long
Dim Ws As Worksheet
If TextBox1.Text = "" = True Then
lbMsg = MsgBox("Geben Sie den betroffenen ANU ein", vbExclamation, "fehlende Eingabe")
TextBox1.SetFocus
Exit Sub
End If
If TextBox5.Text = "" = True Then
lbMsg = MsgBox("Geben Sie einen Kunden- oder Projektname ein", vbExclamation, "fehlende  _
Eingabe")
TextBox5.SetFocus
Exit Sub
End If
If TextBox3.Text = "" = True Then
lbMsg = MsgBox("Geben Sie den Liefertermin an", vbExclamation, "fehlende Eingabe")
TextBox3.SetFocus
Exit Sub
End If
If IsDate(Me.TextBox3.Value) Then
Me.TextBox3 = Format(Me.TextBox3.Value, "dd/mm/yyyy")
End If
If Not IsDate(Me.TextBox3.Value) Then
MsgBox "Bitte gültiges Datum eingeben (dd/mm/yyyy)", vbCritical
TextBox3.SetFocus
Exit Sub
End If
If CDate(Me.TextBox3.Value) 
Danke und Gruss
Max

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus UserForm nur übertragen wenn Bedingung erfüllt ist
17.01.2020 15:39:32
Hajo_Zi
schreibe
If TextBox1.Text = "" = True Then
lbMsg = MsgBox("Geben Sie den betroffenen ANU ein", vbExclamation, "fehlende Eingabe")
TextBox1.SetFocus
Exit Sub
ElseIf TextBox5.Text = "" = True Then
lbMsg = MsgBox("Geben Sie einen Kunden- oder Projektname ein", vbExclamation, "fehlende _
Eingabe")
TextBox5.SetFocus
Exit Sub
'... usw
End If
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: Daten aus UserForm nur übertragen wenn Bedingung erfüllt ist
17.01.2020 15:39:41
Werner
Hallo,
ist ja klar, da fehlt ein Exit Sub vor dem entsprechenden End If der Datumsprüfung.
Gruß Werner
AW: Daten aus UserForm nur übertragen wenn Bedingung erfüllt ist
17.01.2020 15:44:24
Max
oh mann ey -.-
Vielen herzlichen Dank! :)
Gerne u. Danke für die Rückmeldung. o.w.T.
17.01.2020 15:49:12
Werner

392 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige