Hallo Zusammen, ich bin neu in VBA und habe ein Problem. Ich habe eine Userform mit Pflichtfeldern. Nun ist es so, das wenn das Feld nicht gefüllt ist, auch die Entsprechende Meldung nach klicken des "anlegen" Buttons anzeigt (klappt also) . Ich hätte sehr gerne, das er dann keinen Eintrag in die Tabelle vornimmt sondern die Userform sich wieder öffnet und man erst alle Felder entsprechend füllen muss (dachte eigentlich ich habe es so gemacht, das er in diese Zeile wieder Springt, anscheinend habe ich hier noch etwas vergessen? mit 'Cursour in Textbox setzen
Me.txtDatumEingabe.SetFocus ). Es soll nur ein Tabellen Eintrag gemacht werden, wenn auch die Userform komplett gefüllt wurde. Anbei mal mein Code, vielen lieben Dank für eure Hilfe und Tipps vorab !
Private Sub Workbook_Open()
EingabeMaske.Show
End Sub
'UserForm schließen
Private Sub Abbrechen_Click()
EingabeMaske.Hide
End Sub
Private Sub UserForm_Initialize()
EingabeMaske.txtDatumEingabe.Value = Date
End Sub
Private Sub Eingabemaske_Iniziali()
Private Sub Anlegen_Click()
'Blattschutz aufheben
Worksheets("Tabelle1").Unprotect "Sonnenblume"
'Eingabe in Liste einfügen
Dim loLetzte As Long
Dim cstrElement As Control
'erste freie Zeile im Blatt übernehmen
'loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
loLetzte = Cells(1048576, 1).End(xlUp).Row
'Tabellenzeile befüllen
Range("A" & loLetzte).Value = txtDatumEingabe.Value
Range("B" & loLetzte).Value = cbSchichtEingabe.Value
Range("C" & loLetzte).Value = cbSchweißanlage.Value
Range("D" & loLetzte).Value = cbTeilenr.Value
Range("E" & loLetzte).Value = txtStückzahlEingabe.Value
Range("F" & loLetzte).Value = txtNIOStückzahlEingabe.Value
Range("G" & loLetzte).Value = txtStückzahlNachgearbeitet.Value
Range("H" & loLetzte).Value = txtAusschuss.Value
Range("I" & loLetzte).Value = cbSchweißfehler.Value
Range("J" & loLetzte).Value = cbMaßnahmen.Value
Range("K" & loLetzte).Value = txtBemerkung.Value
EingabeMaske.Hide
'Prüfen, ob etwas in Textbox1 steht, Leerzeichen und nichtdruckbare Zeichen gelten nicht als Text!
If Len(Trim(Me.txtDatumEingabe.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie das Datum ein!"
'Cursour in Textbox setzen
Me.txtDatumEingabe.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.cbSchichtEingabe.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte wählen Sie eine Schicht aus!"
'Cursour in Textbox setzen
Me.cbSchichtEingabe.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.cbSchweißanlage.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte wählen Sie eine Schweißanlage aus!"
'Cursour in Textbox setzen
Me.cbSchweißanlage.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.cbTeilenr.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie die TeileNr. ein!"
'Cursour in Textbox setzen
Me.cbTeilenr.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.txtStückzahlEingabe.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie die Stückzahl ein!"
'Cursour in Textbox setzen
Me.txtStückzahlEingabe.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.txtNIOStückzahlEingabe.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie die N.i.O. Stückzahl ein!"
'Cursour in Textbox setzen
Me.txtNIOStückzahlEingabe.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.txtStückzahlNachgearbeitet.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie die nachgearbeitete Stückzahl ein!"
'Cursour in Textbox setzen
Me.txtStückzahlNachgearbeitet.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.txtAusschuss.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie den Ausschuss ein!"
'Cursour in Textbox setzen
Me.txtAusschuss.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.cbSchweißfehler.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte wählen Sie den Schweißfehler aus!"
'Cursour in Textbox setzen
Me.cbSchweißfehler.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.cbMaßnahmen.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie eine Maßnahem ein!"
'Cursour in Textbox setzen
Me.cbMaßnahmen.SetFocus
'Makro wird verlassen
End If
If Len(Trim(Me.txtBemerkung.Value)) = 0 Then
'Falls nicht, wird Meldung ausgegeben
MsgBox "Bitte geben Sie eine Bemerkung ein!"
'Cursour in Textbox setzen
Me.txtBemerkung.SetFocus
'Makro wird verlassen
End If
Worksheets("Tabelle1").Protect "Sonnenblume"
End Sub