ich habe ein Formular, in welches mit einem Barcodescanner Zahlen eingegeben werden. Wenn das letzte Formularfeld gefüllt ist, sollen die Zahlen in die dahinter liegende Exceltabelle geschrieben werden, anschließend die Datei gespeichert und der Cursor soll wieder in das Textfeld 2 springen, damit ein weiterer "Datensatz" gescannt werden kann.
Es funktioniert bis auf das aktivieren des Cursors auch alles, dieses aktivieren treibt mir aber die Zornesröte ins Gesicht. Egal welche der zahlreichen Varianten ich versuche, es funzt nicht. Kann mir jemand weiterhelfen?
Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If i = 23 Then
i = 0
UserForm1.TextBox2.SetFocus
Exit Sub
Else
End If
i = 23
If TextBox2 = "" Then
MsgBox ("Bitte füllen Sie die Bestellnummer aus")
TextBox2.BackColor = vbRed
Exit Sub
End If
If TextBox3 = "" Then
MsgBox ("Bitte füllen Sie die Bezeichnung aus")
TextBox3.BackColor = vbRed
Exit Sub
End If
If TextBox4 = "" Then
MsgBox ("Bitte füllen Sie die Menge aus")
TextBox4.BackColor = vbRed
Exit Sub
End If
If TextBox5 = "" Then
MsgBox ("Bitte füllen Sie die Behälternummer aus")
TextBox4.BackColor = vbRed
Exit Sub
End If
letztezeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
neuezeile = letztezeile + 1
Sheets("Tabelle1").Cells(neuezeile, 1) = TextBox1
Sheets("Tabelle1").Cells(neuezeile, 2) = TextBox2
Sheets("Tabelle1").Cells(neuezeile, 3) = TextBox3
Sheets("Tabelle1").Cells(neuezeile, 4) = TextBox4
Sheets("Tabelle1").Cells(neuezeile, 5) = TextBox5
ThisWorkbook.Save
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox2.BackColor = vbWhite
TextBox3.BackColor = vbWhite
TextBox4.BackColor = vbWhite
TextBox5.BackColor = vbWhite
TextBox2.SetFocus
End Sub
da ich am Ende den Focus zu verschiebe, wird diese Sub zweimal durchlaufen, welches ich am Anfang mit dieser If Schleife unterbinde.
Ich bin nach mehreren Stunden verzweifelter Suche etwas ratlos, wie ich hier eine Lösung finde und dankbar für Hinweise.
Mit freundlichen Grüßen
Steffen