VBA für Userform
#1
Wenn user in "Textbox 1" nach 1 Sekunde keine Eingabe mehr macht, dann TextBox2.SetFocus.

Ich bräuchte mal die Formel für die Zeit.

Liebe Grüße
Antworten Top
#2
Hi Sofia,

Deine Umgangsformen sind auch noch ausbaufähig.

Zu Deiner Frage: Schau mal hier nach.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#3
Hallo Sofia,

Code in der Useform

Code:
Private Sub TextBox1_Enter()
   Application.OnTime Now + TimeValue("0:00:05"), "prcFocus2"
End Sub

Code in einem allgemeinen Modul


Code:
Private Sub prcFocus2()
   UserForm1.TextBox2.SetFocus
End Sub

Zeit in diesem Codebeispiel 5 Sekunden
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#4
Moin,

ich bin der Ansicht, dass beide Lösungswege nicht sehr glücklich sind. Zum einen wirkt Application.Ontime außerhalb der UserFormKlasse und braucht deswegen noch einen Objektzeiger, mit dem es arbeiten kann und zum anderen wird in Stefans Beispiel nicht geprüft, ob nach der ersten Eingabe noch eine Eingabe folgt.

Du benötigst m. E. Also ein Timer Objekt, dessen Tick du regelmäßig verfolgst und mit dem Zeitpunkt der letzten Änderung in Textbox1 abgleichst.

Viele Grüße 
derHoepp
Antworten Top
#5
(27.07.2024, 16:35)Sofia_Bauer schrieb: Wenn user in "Textbox 1" nach 1 Sekunde keine Eingabe mehr macht

Ich als Korinthenkacker behaupte, dass dies bedeutet, dass zunächst mal mindestens ein Tastaturanschlag gemacht wurde.
Folglich müsste der Trigger ein Textbox_Change sein.

Aber folgende Frage ist erlaubt?
Was soll der Quatsch?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste