Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textbox: 2 Sekunden auf weitere Eingaben warten

Textbox: 2 Sekunden auf weitere Eingaben warten
09.01.2020 19:58:33
Zacharias
Hallo liebe Excelianer,
erstmal wünsche ich allen eine Frohes Neues Jahr 2020!
Nun zu meiner Frage:
Ich habe eine Userform bei der ich mittels Textboxen Listboxeninhalte "filtere", d.h. abhängig vom Textboxinhalt fülle. Der Textbox-Change-Code ruft nach dem Upcase der Eingabe eine Update-Sub auf, die wiederum die Listbox füllt.

Private Sub TB_TNrn_Suche_Change()
TB_TNrn_Suche = UCase(TB_TNrn_Suche)
'Hier fehlt der Code, der dafür sorgt, daß 2 Sekunden auf Tastatureingaben gewartet wird
'bevor das Update der Listboxen gestartet wird
Update_Listbox 8
End Sub
Da nicht nur eine Listbox gefüllt wird, sondern in der Folge mehrere, und die Listboxen z.T. mehrere 1.000 Datensätze enthalten, würde ich gern verhindern, daß nach jedem eingetragenen Zeichen sofort Update_Listbox ausgeführt wird.
Mein Ziel wäre, daß nach Auslösen von TB_TNrn_Suche_Change zunächst z.B. 2 Sekunden auf weitere Tastatureingaben gewartet wird und es erst, nachdem 2 Sekunden keine Taste gedrückt wurde, im Code weitergeht.
Ein Auslösen von Update_Listbox über Button o.ä. möchte ich vermeiden.
Ich bin für jeden Hinweis dankbar und wünsche einen schönen Abend.
Zacharias

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

Betreff
Datum
Anwender
Anzeige
AW: Textbox: 2 Sekunden auf weitere Eingaben warten
09.01.2020 20:03:06
Hajo_Zi
Hallo Zacharias,
Application.Wait Now + TimeSerial(0, 0, 2)

AW: Textbox: 2 Sekunden auf weitere Eingaben warten
09.01.2020 20:34:24
Zacharias
Hallo Hajo,
Danke für den Hinweis.
Wait hatte ich schon probiert, damit bekomme ich aber nicht, was ich suche.
Wait stoppt den Code zwar, wenn ich währenddessen weitere Tastatureingaben tätige, wird der Tastaturpuffer zwar gefüllt, aber ich sehe die Eingaben nicht sofort, sondern eben erst nach 2 Sekunden. Wenn ich 3 Tasten drücke, wartet er nach dem ersten Druck 2 Sekunden, führt dann UpdateListbox aus, wartet wieder 2 Sekunden usw.
Wenn sich nichts tut, obwohl Tasten betätigt werden, würde das die Nutzer nur verwirren.
Ich bräuchte irgendeine Schleife die durchlaufen wird, solange keine Tasten gedrückt werden und ein Timer noch keine 2 Sekunden gelaufen ist.
Den Timer würde man mit jeden Tastendruck erneut auf 0 setzen.
Irgendwie so etwas:
Timer = 0 Sekunden
While Timer 
Vielleicht hast Du hierzu noch eine Idee?
Danke und Gruß
Zacharias
Anzeige
AW: Textbox: 2 Sekunden auf weitere Eingaben warten
09.01.2020 21:18:05
Luschi
Hallo Zacharias,
Du nutzt das einfach das falsche Ereignis, Textboxen besitzen auch die Events 'KeyUP', 'KeyDown' und 'KeyPress'.
Hier kannst Du die jewils gerade gedrückte Taste auswerten. 'KeyUP' und 'KeyDown' reagieren auch auf Tab- und Entertaste, KeyPress aber nicht.
Und so kannst Du bei bei Enter oder Tab die Update_Listbox-Prozedur starten.
Ein Versuch, die interne Formular-Events durch undurchsichtiges Dazwischenschalten von Störprozeduren sind zum Scheitern verurteilt.
Gruß von Luschi
aus klein-Paris
AW: Textbox: 2 Sekunden auf weitere Eingaben warten
09.01.2020 21:47:09
Zacharias
Absolut TOP .. genau richtig.
1000 Dank Luschi !!
Super-Idee mit Enter oder TAB als Auslöser. Gleich umgesetzt und es läuft genau wie es soll.
Private Sub TB_TNrn_Suche_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As  _
Integer)
Select Case KeyCode
Case 13, 9
Update_Listbox 8
End Select
End Sub
Private Sub TB_TNrn_Suche_Change()
TB_TNrn_Suche = UCase(TB_TNrn_Suche)
End Sub

Das erhöht die Performance ggü. dem derzeitigen Stand erheblich.
Ach Ihr seid doch echt die Besten hier. Wie so oft nach kurzer Zeit die Lösung.
Nochmals Danke .. ich mach jetzt Schluß für heute.
Zacharias
P.S.:
Demnächst komme ich nochmal mit einem .VBComponents.Remove Problem auf Euch zu,
das funktioniert immer mal wieder sporadisch nicht, und ich weiß nicht wieso.
Aber damit belästige ich Euch heute nicht mehr... ;-)
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige