Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

In Textbox springen





Frage

Hallo Community, hab eigentlich ne ganz einfache Frage. Ich such den Befehl, um in eine Textbox zu springen. Eigentlich müsste das über Textbox.SetFocus doch gehen ? Funktioniert bei mir aber nicht. Die Codezeile wird irgendwie gar nicht beachtet(ist aber nicht kommentiert). Gibts da irgend etwas in den Eigenschaften der Textbox dass ich da noch beachten muss oder fällt jemand etwas ein, an was es noch liegen könnte ? Viele Grüße martl

Antwort 1 von coros

Hi MArtl,

wo befindet sich die TextBox, in Deinem Tabellenblatt oder in einer UserForm?

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von martl

Hallo Coros,

sorry, hab ich vergessen anzugeben, hab meine Textbox in einer Userform untergebracht, die ich über einen Button in einem Tabellenblatt aktiviere.

Viele Grüße
martl

Antwort 3 von coros

Hi Martl,

ich rate jetzt mal. Du möchtest wenn die UserForm geöffnet wird in eine bestimmte TextBox springen? Dann müsste der Code folgendermaßen lauten:

Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub


Habe ich richtig geraten? Wenn nicht, schreibe doch einfach mal, was Du erreichen möchtest.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von martl

Hallo coros,

ja, hast ja recht, sind ziemlich dürftig meine Angaben. Also: Ich bin in der UserForm in einem Textfeld, Nach Verlassen der Textbox (AfterUpdate) überprüf ich, ob die Eingabe numerisch war (IsNumeric), falls nicht, so wird die Textbox "geleert" und eine MessageBox ausgegeben, und danach soll der Cursor eigentlich wieder in der vorherigen Textbox erscheinen, damit nochmals der richtige Wert eingegeben werden kann.

Kann leider im Moment nicht auf den Code zugreifen, sonst hätte ich ihn noch eingefügt.

Aber vielleicht gehts auch ohne, sonst versuch ichs nochmal ihn so zusammenzubasteln.

Viele Grüße
martl

Antwort 5 von coros

Moin Martl,

da verhält sich die ganze Sache anders. Mit SetFocus gibst Du ja nur an, in welche z.B. TextBox gesprungen werden soll, bzw. der Courser sich nach dem Ausführen des VBA Befehls befinden soll. Allerdings möchtest Du sicherlich, dass der vorher eingegebene Text markiert ist, so dass bei Eingabe eines neuen Textes der alte Überschrieben wird. Da muss man mit Send Keys Anweisungen arbeiten. D. h. man sendet eine Tatsenfolge, die man normalerweise mit der Tatstatur macht. In Deinem Fall wäre es die Tab-Taste. Mal ein Beispielcode:

Private Sub CommandButton1_Click()
If TextBox1 <> "Hallo" Then
MsgBox "Falsche Eingabe, bitte wiederholen"
SendKeys "{TAB}"
Else

Hier dann Dein Code

End If
End Sub


Wenn in TextBox1 der eingegebene Text nicht Hallo, dann MsgBox. Nach dem Klick auf OK in der MsgBox wird dann der SendKeys Befehl gesendet.

Allerdings musst Du in den VBA Eigenschaften der UserForm nachsehen, welchen Tab Index die TextBox und welchen Index Deine Schaltfläche hat oder Du betätigst bei aufgerufener UserForm mal die Tabtaste und zählst mit, wie oft Du die Tab Taste drücken musst, bis Du von der Schaltfläche in der TextBox gelandet bist. Denn danach richtet es sich, wieviele SendKeys Befehle Du senden musst. Im einfachsten Fall hast Du eine TextBox und eine Schaltfläche, dann kannst Du den obigen Code 1:1 übernehmen. Ansonsten müssen halt noch ein paar SendKeys angehängt werden.

Ich hoffe, ich habe mich verständlich ausgedrückt. Bei Problemen melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von martl

Hallo coros,

vielen herzlichen Dank, dass Du dir die Zeit genommen hast, mein Problem nachzuvollziehen und so erfolgreich zu lösen. Das war genau das was ich wissen wollte. Aber allein wäre ich nicht darauf gekommen, die SendKeys - Anweisung zu benutzen, ....

Viele Grüße und nochmals vielen Dank
martl

Antwort 7 von coros

Moin martl,

freut mich, dasss ich Dir weiterhelfen konnte und somit Dein Problem lösen konnte. Danke auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: