Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Inhaltsverzeichnis

Textbox auswählen

Textbox auswählen
Sonnenpeter
Hallo,
es will mir nicht gelingen den Text einer Textbox auszuwählen...
Sub DatumsFormat()
On Error GoTo ERRORHANDLER
Me.Controls(T_Box).Value = Format(CDate(Controls(T_Box).Value), "dd.mm.yyyy")
Exit Sub
ERRORHANDLER:
MsgBox "Falsche Datumsangabe" & Chr(13) & Me.Controls(T_Box).Value
With Controls(T_Box)
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
Exit Sub
End With
End Sub
Nach Abschluß der On Error Anweisung ist die Cursor immer in der nächsten Textbox.
was ist zu tun?
Gruß SP

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Textbox auswählen
17.04.2010 16:57:33
Nepumuk
Hallo,
durch welches Ereignis wird diese Prozedur angestoßen?
Gruß
Nepumuk
AW: Textbox auswählen
17.04.2010 17:09:04
Sonnenpeter
Hallo Nepumuk und Erich,
vorgeschaltet ist
Private Sub TextBox10_AfterUpdate()
If Me.TextBox10.Value = "" Then
Exit Sub
Else
T_Box = "TextBox10"
DatumsFormat
End Sub
Gruß SP
AW: Textbox auswählen
17.04.2010 17:34:30
Nepumuk
Hallo,
da hast du schlechte Karten. Denn deine Prozedur wird aufgerufen, wenn der Cursor die Textbox verlässt. Da läuft sie dann und wenn sie durch ist, dann erst wird die nächste Textbox angesteuert. Versuch es mit einem anderen Ereignis, z.B. BeforeUpdate. Du musst dann deine Prozedur in eine Funktion umwandeln die dir Erfolg oder Misserfolg zurückliefert. Damit steuerst du dann über Cancel, ob die Box verlassen werden soll oder nicht.
Außerdem würde ich die Textbox nicht als Name über eine Variable auf Modul oder Projektebene, sondern das Objekt direkt als Parameter an die Datumsprüfung übergeben.
Beispiel:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Cbool(TextBox1.TextLength) Then _
        Cancel = Not DatumsFormatOk(TextBox1)
End Sub

Private Function DatumsFormatOk(objTextbox As MSForms.TextBox) As Boolean
    On Error GoTo ERRORHANDLER
    objTextbox.Value = Format(CDate(objTextbox.Text), "dd.mm.yyyy")
    DatumsFormatOk = True
    Exit Function
    ERRORHANDLER:
    MsgBox "Falsche Datumsangabe" & vbLf & vbLf & objTextbox.Text
    With objTextbox
        .SelStart = 0
        .SelLength = .TextLength
    End With
End Function

Gruß
Nepumuk
Anzeige
AW: Textbox auswählen
17.04.2010 17:58:31
Sonnenpeter
Hallo Nepumuk,
habe Deine Vorschlag umgesetzt.
Leider funktioniert es immer noch nicht.
Statt den Text der Textbox auszuwählen wird jetzt gar keine Textbox mehr ausgewählt.
Gruß SP
AW: Textbox auswählen
17.04.2010 18:03:50
Nepumuk
Hallo,
ich hab das getestet, das funktioniert einwandfrei. Hast du die Namen auch angepasst? Alle drei?
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Cbool(TextBox1.TextLength) Then _
Cancel = Not DatumsFormatOk(TextBox1)
End Sub
Gruß
Nepumuk
AW: Textbox auswählen
17.04.2010 18:21:11
Sonnenpeter
Hallo noch mal,
ja die Namen sind alle angepasst.
Geht nicht bei mir trotzdem nicht.
Warum? Mit Tabstop etc.? was zu tun?
Nun ja. Ich färbe jetzt die TextBox ein.
Das BeforeUpdate hat ja noch den Vorteil das die Eingabe in den nachfolgenden Textboxen nicht möglich ist bevor die Textbox richtig belegt ist.
Gruß SP
Anzeige
Aufruf?
17.04.2010 17:00:05
Erich
Hi Peter,
wann und wodurch wird DatumsFormat() aufgerufen?
Wenn das in einer Ereignisprozedur ist, müsste dann vielleicht dort im Fehlerfall so etwas wie "Cancel = True" kommen.
Sonst kannst du innerhalb der Prozedur den Focus stzen wie du willst - direkt danach wandert er weiter.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige