Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
524to528
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
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
TextBox SetFocus Problem
27.11.2004 14:49:35
Drazen
Hallo.
folgender Code:
Private Sub txt4_Exit(ByVal Cancel As MSForms.ReturnBoolean) On Error GoTo Fehler txt4.Value = DateValue(txt4) Exit Sub Fehler: MsgBox " Eintrag nur in Form von 01.01.1999 möglich " txt4.Text = "" frm_UGOVORI.txt4.SetFocus End Sub
sollte eigentlich die Eingabe in txt4 prüfen on sie im bestimmten Format ist und wenn nicht, auf dies in einer MsgBox enzeigen. Funktioniert soweit auch prima, nur habe ich in der UF viele TextBoxen und nach Bestätigung des MsgBox springt der Corsor in die Nächste TextBox obwohl ich eigentlich wollte dass die txt4 gelöscht wird und ich eine Neueingabe starten kann im richtigen Format.
Was mach ich falsch?
Grüsse
Drazen

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox SetFocus Problem
27.11.2004 15:02:35
Frank
Hallo Drazen,
bin mir nicht ganz sicher ob da stimmmt...
Dein Code steht im Exit Ereignis, dass heißt er wird glaube ich ausgeführt, bevor die Textbox verlassen wird. Du drückst z.B. Tab um ins nächste Textfeld zu springen, dann läuft dein Makro, stellt fest das du ein "falsche" Datum eingegeben hast, gibt die msgbox. löscht den Text, stellt sich dann mit setfocus wieder ins TRT4 und verlässt dies dann wieder... Glaube, das liegt daran.
Du mußt also ein anderes Ereignis wählen.
Gruß
Frank
Cancel = True
27.11.2004 15:07:19
Josef
Hallo Drazen!
Frank hat schon recht!
Du musst den Code nur etwas ändern.

Private Sub txt4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo Fehler
txt4.Value = DateValue(txt4)
Exit Sub
Fehler:
Cancel = True
txt4 = ""
MsgBox " Eintrag nur in Form von 01.01.1999 möglich "
End Sub

Gruß Sepp
Anzeige
Endlich mal! :)
27.11.2004 15:11:19
Frank
...
AW: Cancel = True
27.11.2004 15:22:18
Drazen
Hallo Frank, hallo Sepp,
danke für die schnelle Hilfe, es klappt tatsächlich, hat aber einen Schönheitsfehler, jetzt lässt mich das UF gar nicht mehr weiter bevor ich was im richtigen Format eingegeben habe, was aber wenn ich nichts eingeben will, also diese Textbox umgehen will, jetzt geht die Aktivierungsreihenfolge natürlich die einzelnen txt durch und sobald ich in der Box mal drin bin gehts nicht weiter bevor ich ein Datum eingebe , kann man sowas irgendwie noch hinzufügen?
Drazen
AW: Cancel = True
27.11.2004 15:24:32
Josef
Hallo Drazen!
Kein problem.

Private Sub txt4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txt4 <> "" Then
On Error GoTo Fehler
txt4.Value = DateValue(txt4)
Exit Sub
Fehler:
Cancel = True
txt4 = ""
MsgBox " Eintrag nur in Form von 01.01.1999 möglich "
End If
End Sub

Gruß Sepp
Anzeige
AW: Cancel = True
27.11.2004 15:25:11
Frank
Hallo Drazen,
versuch mal als erste Zeile vom Code:
If txt4.Value = "" Then
Exit Sub
End If
...
ungetestet...
Gruß
Frank
AW: Cancel = True
27.11.2004 15:35:29
Drazen
Hallo Frank,
GEHT VOLL AB!!!
THX
Prob vollständig gelöst!
Grüsse
Drazen
AW: Cancel = True
27.11.2004 15:46:37
Drazen
Hallo nochmal,
jetzt wieder ein Problem aufgetaucht, alles klappt wenn ich den code in txt4 einsetze, jetzt wollte ich das ganze aber auch für txt5 im gleichen UF einsetzen, dann bekomme ich eine Fehler-Meldung, "Cancel = True" Cancel sei als variable oder objekt nicht definiert? Wie löse ich die Geschichte also wenn ich den Prozess bei 4 von 10 Textboxes um gleichen UF so anwenden möchte?
Grüsse
Drazen
Das mit dem Prob gelöst war wohl etwas voreilig...
Anzeige
AW: Cancel = True
27.11.2004 15:58:24
Josef
Hallo Drazen!
Das kann man so lösen!

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = All_Text_Exit(TextBox1)
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = All_Text_Exit(TextBox2)
End Sub

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = All_Text_Exit(TextBox3)
End Sub

Private Function All_Text_Exit(myBox As Object) As Boolean
If myBox <> "" Then
On Error GoTo Fehler
myBox.Value = DateValue(myBox)
Exit Function
Fehler:
All_Text_Exit = True
myBox = ""
MsgBox " Eintrag nur in Form von 01.01.1999 möglich "
End If
End Function

Gruß Sepp
Anzeige
AW: Cancel = True
27.11.2004 16:19:31
Drazen
Hi,
ALLES PALLETTI !
THX
Grüsse
Drazen

110 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige