Userform Pflichteingaben

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Userform Pflichteingaben
von: Marius
Geschrieben am: 20.04.2005 07:47:17
Hallo an die Experten,
ich möchte wissen, wie ich in einer Userform die Textboxen so formatieren kann, dass eine Pflichteingabe erzwungen wird und bei nicht Einhaltung eine msgbox aufspringt?
Folgende „Formate“ müssten überprüft werden:
- Zahl zwischen 1.000 und 9.999.999
- Zahl zwischen 1 und 99.999
- Datum MM/JJJJ
- Zahl zwischen 1 und 31
- Max. zwei Buchstaben
- Zahlen zwischen 1 und 7999 bzw. 8500 und 9999
- Zahl zwischen 0,01 und 24,00
- Zahl zwischen 0,01 und 1,00
- Max. acht Stellen
- Zahl zwischen 0,01 und 999,99
- usw.
Habe schon ein paar Sachen mit Ascii Code gefunden aber da steige ich nicht ganz durch und ich wüsste auch nicht, wie ich das in denn Code für die Textfelder schreiben soll.
Bitte um Hilfe, ist Wichtig. Bedanke mich schon mal im Voraus.
Marius

Bild

Betrifft: AW: Userform Pflichteingaben
von: MichaV
Geschrieben am: 20.04.2005 09:44:39
Hi,
z.B. so:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not DeineAbfrage Then
  Cancel = True
  MsgBox "falsche Eingabe"
  TextBox1.SetFocus
End If
End Sub

DeineAbfrage wäre dann z.B. cint(textbox1.text)>5 and cint(textbox1.text)<10 , Zahl zwischen 5 und 10. Es muß aber an dieser Stelle sichergestellt sein, daß wirklich nur Zahlen im Textfeld stehen., Das kannst Du auf verschiedene Wege ereichen, hast Du vielleicht schon rausgefunden.
Du musst noch verhindern, daß Form über Schaltfläche X geschlossen wird, in diesem Fall funzt die Abfrage nicht.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

Dann brauchst Du natürlich eine Taste, die das Form schließen kann.

Private Sub CommandButton1_Click()
Unload Me
End Sub

Mit MaxLength kannst Du übrigens festlegen, daß nur eine bestimmte Anzahl an Zeichen in ein TextBox eingegeben werden kann.
Hoffe, Du kannst mit diesen Ideen was anfangen.
Gruß- Micha
Bild

Betrifft: AW: Userform Pflichteingaben
von: Marius
Geschrieben am: 20.04.2005 10:31:20
Super,
danke hat mir schon viel geholfen. Aber ein paar Fragen bleiben jetzt noch offen, wenn du mir da noch helfen kannst, währe das super.
- Das mit dem QueryClose funktioniert nicht aber die Pflichteingaben funktionieren trozdem
- wie stelle ich das an das ich in ein Feld zwei Zahlenwerte abfragen (z.B. zwischen 1 und 3 und zwischen 7 und 9)
- wie stelle ich sicher das nur Zahlen oder Buchstaben eingegeben werden.
- und wie gebe ich das Datum ein (MM/JJJJ)
Sorry, aber ich bin in VBA noch ein totaller Anfänger
Bild

Betrifft: AW: Userform Pflichteingaben
von: MichaV
Geschrieben am: 20.04.2005 12:06:28
Hi,
hier mal eine Beispielmappe mit verschiedenen Lösungsansätzen.
https://www.herber.de/bbs/user/21407.xls
Die Key- Ereignisse haben noch Sicherheitslücken (z.B. greift das KeyUP- Ereignis nicht, wenn mit der Maus was eingefügt wurde), es aber in der Eingabe besser aus. Je nach Aufwand, den Du für notwendig hältst, kannst Du verschiedene Sachen ja kombinieren.
Frohes Schaffen!
Gruß- Micha
Bild

Betrifft: AW: Userform Pflichteingaben
von: Marius
Geschrieben am: 20.04.2005 11:01:33
noch eine kleine Ergänzung,
- die minimal Zahl funktioniert aber nach oben hin ist leider alles möglich
- kann es sein das VBA Probleme mit größeren Zahlen hat ich denke da an dir größte 9.999.999,99
Bitte um Hilfe :-(
Marius
Bild

Betrifft: AW: Userform Pflichteingaben
von: MichaV
Geschrieben am: 20.04.2005 12:11:42
Hi,
siehe Beispielmappe.
Mit der Größe der Zahlen dürfte es kein Problem geben ;o) Die Obergrenze der möglichen Zahlen sind nur noch für Berechnungen relevant, über Tastatur werden die nicht mehr eingegeben.
Gruß! Micha
Bild

Betrifft: AW: Userform Pflichteingaben
von: Marius
Geschrieben am: 20.04.2005 17:41:16
Super Micha,
besten Dank! Sas jetzt den halben Tag dran, habe rumprobiert und alles funzt!!!
Super dicker Danke nochmal.
Marius
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Userform Pflichteingaben"