Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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
Textbox1 nach Eingabe zur Textbox2 sprin
17.12.2022 13:14:49
samuel
Hallo Leute,
habe eine Userform mit mehreren Textboxen, bei denen ich die Eingabe begrenzen will und nach der Eingabe der Focus automatisch zur nächsten Textbox weiter springt.
Bei der ersten Textbox klappt das auch

Private Sub TeBo_sys_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TeBo_sys.MaxLength = 3
If TeBo_sys > 80 Then
TeBo_dia.SetFocus
End If
End Sub
Wenn ich dann den gleichen Code für die Textbox2 (TeBo_dia) einfüge springt er nach der ersten Tasten Eingabe weiter zur dritten Textbox, was mache ich falsch?

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

Betreff
Datum
Anwender
Anzeige
AW: Textbox1 nach Eingabe zur Textbox2 sprin
17.12.2022 13:56:02
Daniel
Du darfst für die nächste Textbox natürlich nicht den gleichen Code einsetzen, sonden musst ihn natürlich für die nächste Textbox anpassen.
Vielleicht hast du das nicht vollständig gemacht?
Können wir aber nicht wissen, weil du und diesen Code nicht zeigst.
Zusätzlich zum Code wäre es auch gut, wenn du die Datei hochladen würdest.
In dem Code sind auch schon ein paar Fehler drin:
1. Einstellungen, die sich nicht ändern wie TeBo_sys.MaxLength = 3, gehören nicht in dieses Event. Entweder stellt man das schon im Editor in der Eigenschaftsliste so ein, oder wenns per Code sein soll, im Initialize-Event der Userform. Nur wenn sich diese Einstellung in Abhängigkeit von anderen Faktoren ändern soll, kann man über eine andere Positionierung nachdenken.
2. Eine Textbox enthält immer Text und ein Text ist immer größer als jede Zahl.
Der Text "1" ist größer als die Zahl 9999999999999999
Daher ist dein Vergleich so nicht sinnvoll.
Gruß Daniel
Anzeige
AW: Textbox1 nach Eingabe zur Textbox2 sprin
17.12.2022 20:01:16
samuel
Hallo Daniel,
danke für die schnelle Antwort. MaxLenght hab ich wieder raus genommen, ist beim rumprobieren da rein gerutscht ist jetzt wieder in den Einstellungen.
Ich habe mir eine Useform gemacht mit 5 Textboxen in denen ich Blutdruckwerte auf nehmen will um sie dann in eine Tabelle zu schreiben. Soweit Funktioniert das auch, eigentlich wäre ich fertig aber es geht ja besser und darum geht es mir grad.
Jetzt geht es mir darum die Textboxen entsprechend zu Formatieren, also max. dreistellige Zahlen (Funktioniert) in einem Logischem Bereich und mit "automatischem Focus versetzten" für die beiden Blutdruck Werte und dem Puls. Das funktioniert nur bedingt. Den folgenden Code habe ich hier aus dem Forum kopiert und angepasst aber das mit dem Focus versetzen bekomme ich nicht hin und es sollten alle Tasten ausser den Zahlen deaktiviert sein, die Msgbox brauche ich auch nicht, ist nur noch drin als Platzhalter für den Focus.
Bei Datum und Uhrzeit werde ich wieder andere Bedingungen haben.

Private Sub TeBo_dia_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
'nur Zahlen 0 bis 9
Case 48 To 57
Case Else
'alle anderen Tastatureingaben unterdrücken
'außer folgende Tasten: ESC, Enter, Pfeile, Entf, Backspace
KeyAscii = 0
TeBo_dia.Text = ""
Exit Sub
End Select
If CInt(Me.TeBo_dia.Text & Chr(KeyAscii)) > 150 Then
MsgBox "Wert ist größer 150!", 16, "Hinweis"
KeyAscii = 0
TeBo_dia.Text = ""
End If
End Sub
Hoffe ich konnte ungefähr klar machen worum es mir geht. Danke schon mal.
Anzeige
AW: Textbox1 nach Eingabe zur Textbox2 sprin
17.12.2022 20:19:51
Daniel
Naja Code im Internet suchen ist problematisch.
Es setzt voraus, dass jemand das exakt gleiche Problem hatte.
Besser ist immer selber programmieren.
Du willst nach der Eingabe der Blutdruckwerte automatisch in die nächste Textbox springen.
Da musst du erstmal das richtige Event für diese Aktion bestimmen und das wäre KeyUp, weil das der Zeitpunkt ist, in dem der neue Text schon in der Textbox steht.
Dort prüftst du dann, ob der Wert dreistellig ist und mit 1 oder 2 beginnt, oder zweistellig und mit 5-9 beginnt:

If Textbox1.text like "[12]##" or textbox1.text like "[5-9]#" then textbox2 aktivieren
Gruß Daniel
Anzeige
AW: Textbox1 nach Eingabe zur Textbox2 sprin
17.12.2022 23:25:51
samuel
Hallo Daniel,
da hast Du natürlich recht aber es ging mir als Anfänger erst mal um Ideen. Danke für Deine Idee

Private Sub TeBo_sys_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If TeBo_sys.Text Like "8?" Or TeBo_sys.Text Like "9?" Or TeBo_sys.Text Like "1?" Or TeBo_sys.Text Like "2?" Then
TeBo_dia.SetFocus
End If
End Sub
So Funktioniert er wie gewollt. :-)
Danke für die Hilfe

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige