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

Textfelder in UF - 2 Fragen

Textfelder in UF - 2 Fragen
15.02.2005 09:54:46
Markus
Hallo,
ich habe in einer UF einige Textfelder. Nun möchte ich das in einem Textfeld nur eine 10 stellige Zahl eingetragen werden kann. Zum Thema Zahlen eingabe habe ich folgenden Code genutzt:

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(","), Asc(".")
If InStr(TextBox2, ".") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
Case Asc(vbBack)
Case Asc("-")
If Len(TextBox1) = 0 Then
If InStr(TextBox2, "-") <> 0 Then
Else
KeyAscii = Asc("-")
End If
Else
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

Zur Längenbegraenzung habe ich bei dem Druck auf einen Button folgenden If Code genutzt. Doch klappt es nicht, auch wenn ich eine 10 stellige Zahl eingebe bekomme ich die MsgBox angezeigt. Was hab ich falsch gemacht?
If TextBox2.TextLength 10 Then
MsgBox ("Please fill in a valid customer number")
Exit Sub
End If
Die zweite Frage dazu ist, wie kann ich eine Prozedur beenden ohne das die nächste Textbox aktiviert wird? Ich habe diesen Code genutzt um auf eine 10 stellige Eingabe zu bestehen, das klappt auch, aber wenn ich die MsgBox bestätige, dann springt er zur nächsten Textbox, doch er soll in dieser bleiben bis die Eingabe richtig ist.

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Length <> 10 Then
MsgBox ("Number to long or to short")
End If
End Sub

Danke im Voraus für Eure Hilfe!!
Markus

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfelder in UF - 2 Fragen
16.02.2005 22:34:51
Roland
Hallo Markus,
zur 1.Frage: der Code ist ok: dann sind es eben wirklich keine 10 Stellen
zur 2.Frage: etwa folgendes Strickmuster:
Option Explicit
Dim bolClose As Boolean

Private Sub TextBox2_AfterUpdate()
If bolClose Then Exit Sub
If TextBox2.TextLength <> 10 Then MsgBox "Fehler"
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.TextLength <> 10 Then
TextBox2 = ""
Cancel = True
End If
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
bolClose = True
End Sub

Diese Konstruktion verhindert, dass beim Schließen der UF die MessageBox noch mal erscheint.
Feedback wäre nett :-)
Gruß Roland
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige