Hallo liebe Excel-VBA-Fan-Gemeinde,
tüftle schon wieder seit 'ner halben Stunde an 2 Sachen in folgender Prozedur:
Private Sub txbArtikelnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Select Case Left(Me.txbArtikelnummer, 2)
Case "02", "09", "19", "20", "21", "39", "61"
NächsteProzedur
Case Else
NrKreisAw = MsgBox("Bitte Nummernkreis überprüfen. " & Chr(10) & _
"Ist der Nummernkreis richtig?", _
vbYesNo + vbExclamation, "Nummernkreiskontrolle")
If NrKreisAw = vbYes Then
NächsteProzedur
Else
Me.txbArtikelnummer.SetFocus
End If
End Select
End Sub
1) ...SetFocus
Wie man sehen kann, hab ich 7 mir bekannte Nummernkreise einer Artikelnummer, die in einer SelectCase-Anweisung überprüft werden. Wenn die eingegeben Artikelnummer nicht in das Schema reinpasst, soll, wie man sieht eine Msgbox aufgerufen werden, wo dieses nochmals überprüft werden kann. Mein Programm soll, beim auf "NEIN" klicken wieder in die gleiche Textbox springen, damit Änderungen vorgenommen werden können. Habe gedacht, dass es mit SetFocus geht, aber er springt trotzdem in die Nächste Textbox. Was mache ich Falsch?
2) Bedingungen der SelectCase-Anweisung erweitern
Angenommen, ich gebe eine Artikelnummer ein, die nicht in das Schema der 7 mir bekannten Nummernkreise reinpasst, aber dennoch richtig ist, dann will ich gerne, dass diese in irgendeiner Datenbank (z.B. verstecktes Sheet) hinterlegt wird und bei künftigen Eingaben mit berücksichtigt wird. Wäre das wohl irgendwie machbar?
Ich hoffe ich habe mich einigermaßen Verständlich ausgedrückt und freue mich schon sehr über eure Antworten.
Vielen Dank!
Mit freundlichen Grüßen
Richard E.