Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
504to508
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
504to508
504to508
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Was läuft bei Textbox_Exit?

Was läuft bei Textbox_Exit?
27.10.2004 11:40:57
Franz
Hallo Forum,
was läuft denn bitte ab beim Verlassen einer Textbox(Uf)? Es geht um folgenden Code:

Private Sub TextBox14_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox14 = "" Then
MsgBox "Bitte Auswahl treffen!"
TextBox14.SetFocus
End If
TextBox14.BackColor = &H80000005
End Sub

Es kommt zwar die MsgBox mit der Meldung, dann aber springt der Focus trotzdem in die nächste Textbox entsprechend der Aktivierreihenfolge (bei Verlassen der Box mit Tabulator) bzw. in die neu angeklickte Zelle.
Wie kann ich erreichen, das nach Verlassen der Textbox - falls diese leer ist - doch wieder genau diese Box den Fokus bekommt?
Vielen Dank schon mal und Grüße
Franz

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was läuft bei Textbox_Exit?
Udo

Private Sub TextBox14_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox14 = "" Then
MsgBox "Bitte Auswahl treffen!"
Cancel = true
End If
TextBox14.BackColor = &H80000005
End Sub

So kommst du aber nur aus ser textbox, wenn eine Eingabe gemacht wurde,
Udo
Genau so!!
27.10.2004 11:47:26
Franz
Hallo Udo,
super! Genau so soll es sein! Diese Box soll solange aktiv bleiben, bis eine Eingabe gemacht ist (bzw. aus der Combo ausgewählt wurde).
Besten Dank und Grüße
Franz
AW: Genau so eben nicht!
Udo
Genauso sollte es aber eben nicht sein! Der user muss die Möglichkeit zum Abbrechen haben. Alles andere ist userfeindlich.
Udo
Anzeige
Hmm...
27.10.2004 12:04:12
Franz
Hallo Udo,
du stimmst mich nachdenklich! Ich dachte es wäre PRO User, wenn er gezwungen wird, hier eine Eingabe zu tätigen. Nach den Einträgen in diese Box werden später Filter erstellt, und da fände ich es (im Interesse des Users) wichtig, dass es da keine Fehler gibt, die sich ergeben könnten, wenn ein Satz nicht eingeordnet wird.
Bin aber offen: was würdest du für eine Ausstiegsmöglichkeit vorschlagen?
In deinem Sinn hab ich vorher auch schon folgendes versucht:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.BackColor = &H80000005
If TextBox14 = "" Then
MsgBox "Es muss ein ""Bezug"" eingegeben werden!"
TextBox14.SetFocus
End If
End Sub

Damit würde der User zwar zunächst in TextBox14 geschickt und könnte dann entscheiden, ob er eine Eingabe machen möchte oder nicht.
Ich scheitere aber auch mit obigem Code: die MsgBox erscheint 2 Mal und dann kommt gleich das Exit_Ereignis von TextBox14
Kannst du mir bitte ein bissl auf die Sprünge helfen?
Grüße
Franz
Anzeige
wie wär's mit'nem Vorgabewert?
Galenzo
du kannst doch die Box schonmal mit 'nem "Standard"-Wert befüllen, der dann schonmal markiert ist und vom User bei Bedarf überschrieben werden kann.
mfg
AW: Hmm...
Ramses
Hallo Franz
warum überprüfst du nicht beim Klick auf den "OK" bzw. "Abfrage ausführen"-Button ob in Textbox14 etwas steht.
Dann hast du mehr Möglichkeiten der Steuerung.
Gruss Rainer
auch gescheitert :-()()()
27.10.2004 12:18:08
Franz
Hallo Rainer,
hast recht, so hatte ich es anfangs auch. Es gibt aber mehrere Möglichkeiten weiterzugehen, die Abfrage wird nicht zwangsläufig sofort ausgeführt, die UF nicht unbedingt sofort geschlossen. Es kann z.B. mittels einer Listbox gleich ein anderer Satz gewählt werden, oder über Buttons anderweitig navigiert werden. Dann soll die Eingabe zwar übernommen werden, wird aber erst später mal benötigt. Und bei all den unterschiedlichen Möglichkeitn gelingt mir das mir der Überprüfung dieser Box nicht mehr so richtig. Vielleicht sollte ich mein Grundkonstrukt noch mal überdenken und überarbeiten ^^:o
Danke auf jeden Fall für eure Tipps und Grüße
Franz
Anzeige
AW: Hmm...
Udo
Was meinst du überhaupt mit ""Bezug"" ? Falls ein Zellbezug gemeint ist, würde ich eine
Auswahlmöglichkeit mit Application.Inputbox anbieten, ist allemal weniger fehleranfällig
als manuelle Eingabe. Alternativ geht natürlich auch RefEdit.
Außerdem musst du ja auch noch sicherstellen, dass es sich um einen gültigen Zellbezug handelt.
Udo
kein Zellbezug
27.10.2004 12:33:22
Franz
Hallo Udo,
nein, nein, kein Zellbezug. Die Box hat den Namen "Bezug", es geht hier um eine Zuordnung zu einer bestimmten Gruppe.
Vielen Dank für deine Hilfe und Grüße
Franz
AW: kein Zellbezug
Udo
Aha, wie kann denn so ein "Bezug" aussehen?
Udo
Anzeige
AW: kein Zellbezug
27.10.2004 13:07:46
Franz
Hallo Udo,
aus der Box wird eine Combo, und da werden dann Einträge voregegeben sein wie "Kunden - Firmen - Organisationen" oder wie auch immer, noch keine Ahnung, was da mal alles rein soll.
Übrigens hab ich jetzt mal folgende Lösung gefunden, die klappt:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.BackColor = &H80000005
If TextBox3 = "" Then
TextBox4.SetFocus
Else
If TextBox14 <> "" Then
TextBox4.SetFocus
End If
End If
End Sub

Das klappt wunderbar. Es läuft zwar manchmal zwei Mal hintereinander das Makro durch - und ich hab noch nicht ganz kapiert, warum. Aber das merkt in dieser Form ja keiner...;-))
Also nochmals danke und Grüße
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige