Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Textfelder markieren





Frage

Hallo zusammen, ich schon wieder :-) Beim Initialisieren eines Formulars passiert unter anderem folgendes: Me.txt_name.SetFocus Wie ich kann aber erreichen, dass der Cursor dann auch wirklich in diesem Feld [b] blinkt [/b]und der Anwender zu schreiben beginnen kann? Und gleich noch was in diesem Zusammenhang: Drückt der Anwender einen Button, werden erst einige Plausis durchgeführt. Ist in einem Feld der Wert "0.00" erfasst, wird der Anwender darauf hingewiesen, dass ein gültiger Wert erfasst werden muss...: ... Me.txt_dat_heirat.SetFocus Exit Sub ... Ich möchte aber, dass der Wert "0.00" [b] markiert[/b] wird, so, dass der Anwender nur noch zu schreiben beginnen kann. Was fehlt denn da noch? Danke für Eure Hilfe. Gruss Rahel

Antwort 1 von coros

Hi Rahel,

also mit SetFocus und dem vorgeschalteten Textboxnamen sollte der Cusor in der angesprochenen TextBox erscheinen. Beispiel:

TextBox3.SetFocus erwirkt, dass der Coursor in der TextBox3 sich nach Ausführen des Befehls befindet.

Damit der Wert 0.00 markiert wird, sollte eine if-Abfrage erfolgen, die die TextBoxen auf diesen Wert abfragt und dann in die fehlerhafte TextBox springt.

Aber ich vermute jetzt mal, dass Dir die Antworten von mir nicht genügen, da sehr allgemein gehalten. Um Dir aber präzisere Antworten zu geben, musst Du schon etwas mehr schreiben und nicht nur irgendwelche Auszüge aus Deinen Codes. Also, wenn Du genauere Infos benötigst, dann musst Du schon mehr schreiben, z.B. Wieviele textBoxen müssen nach dem Wert abgefragt werden usw.


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 Rahel04

Hi Coros,

danke schon mal für Deine Antwort.

Zu Punkt 1: Ich glaub ich kenne nun den Grund, warum das mit dem ´SetFocus´ so nicht geht. Die Textbox steht in einem Frame. Somit sollte ich wohl erst das Frame und dann die Textbox ansprechen, oder? Aber selbst wenn ich recht habe, wüsste ich nicht wie das geht...

Zu Punkt 2: Die If-Abfrage besteht schon. Hier wird wohl dasselbe Problem sein wie bei Punkt 1: Das Frame.
Habe nun mal versucht, eine Textbox auf dem Formular zu platzieren, also die gleiche "Ebene" wie der Button mit den Plausis, und habe folgendes erfasst:

Me.TextBox1.SetFocus
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = TextLength

Geht auch nicht! Möchte ja nur erreichen, dass der erfasste Text (was auch immer) markiert wird, damit der Anwender nur noch zu schreiben beginnen kann.

Kannst Du bitte nochmals einen Anlauf starten?

Danke & Gruss
Rahel

Antwort 3 von Druido

Hi Rahel04

Du kannst den Inhalt deiner TxtBox beim verlassen dieser mit dem Exit-Ereignis verbinden. dieses hat auch die Cancel Eigenschaft. Wenn der Inhalt der TxtBox nicht deinen Vorgaben entspricht, wird der Inhalt gelöscht und der Curser blinkt in der Box. Als Kür kannst du noch eine MsgBox erscheinen lassen, welche den Anwender auf seinen Fehler hinweist.
z.Bsp.

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox7
If Not IsDate(.Text) And Not .Text = "" Then
.Text = ""
MsgBox "Bitte ein gültiges Datum eingeben!"
Cancel = True
Else
On Error Resume Next
.Text = CDate(.Text)
End If
End With
End Sub

In meinem Beispiel will ich die Eingabe eines gültigen Datums.
Hoffe dies hilft dir etwas weiter

Grüsse
Druido

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: