Excel VBA Textbox Eingabeformat

Hi Community

Bei meinem letzten Artikel [http://www.wer-weiss-was.de/cgi-bin/forum/showarchiv…] habe ich die Frage gestellt, ob es denn VBA-technisch machbar ist, den in einer Textbox eingetragenen Daten ein vordefiniertes Format zu verpassen. Das konnte ich mit eurer Hilfe super lösen.

Ich gehe mit meiner Frage jetzt noch einen Schritt weiter. Wäre es denn möglich, einer Textbox ein Format zu hinterlegen, das die Dateneingabe automatisch in ein Format zwingt? z.B. wenn ich die Zahlenfolge 123456 eingebe - füllt es die Textbox automatisch mit 1234-56 aus? Ich stelle mir vor, dass man das Format hinterlegen könnte wie bei Access Formularen oder Tabellen.

Danke viel mal für eure Vorschläge!

Gruss
André

Hi Andre,

Bei meinem letzten Artikel
[http://www.wer-weiss-was.de/cgi-bin/forum/showarchiv…]
habe ich die Frage gestellt, ob es denn VBA-technisch machbar
ist, den in einer Textbox eingetragenen Daten ein
vordefiniertes Format zu verpassen. Das konnte ich mit eurer
Hilfe super lösen.

es kam von dir leider keine Rückmeldung, hat VBA.Mid funktionieert?

Ich gehe mit meiner Frage jetzt noch einen Schritt weiter.
Wäre es denn möglich, einer Textbox ein Format zu hinterlegen,
das die Dateneingabe automatisch in ein Format zwingt? z.B.
wenn ich die Zahlenfolge 123456 eingebe - füllt es die Textbox
automatisch mit 1234-56 aus? Ich stelle mir vor, dass man das
Format hinterlegen könnte wie bei Access Formularen oder
Tabellen.

Du kannst doch das TextBox1_Change- EReignis benutzen um zu formatieren.

Hi André

Hi Reinhard

es kam von dir leider keine Rückmeldung, hat VBA.Mid
funktionieert?

Hast du die Rückmeldung in der Zwischenzeit gesehen? :smile:

Du kannst doch das TextBox1_Change- EReignis benutzen um zu
formatieren.

Genau da stehe ich an - ich kenne den Code nicht für die Formatierung - in den Foren findet man lediglich die Zeit und Datums-Formatierung.

Gruzz
André

Hi André,

es kam von dir leider keine Rückmeldung, hat VBA.Mid
funktionieert?

Hast du die Rückmeldung in der Zwischenzeit gesehen? :smile:

Ja, ich muss mal mein Excel starten, dann finde ich den Verweis.

Du kannst doch das TextBox1_Change- EReignis benutzen um zu
formatieren.

Genau da stehe ich an - ich kenne den Code nicht für die
Formatierung - in den Foren findet man lediglich die Zeit und
Datums-Formatierung.

Aha, jetzt habe ich auch kapiert was du mit „hinterlegen“ meintest:smile:
Du meinst den Format-Befefehl. Da bin ich leider nicht fit, es gibt da wahre Künstler die können mit Format optisch viel herausholen, aber ob deine Formatierung damit möglich ist weiß ich nicht.
Jedenfalls meinte ich mit formatieren so was:
(Change-Ereignis reagiert ja sofort auf jedes Zeichen, also lieber LostFocus-Ereignis. Ggfs müßte man noch den Code erweiteren, aalso wenn jemand schon formatiert als 1234-56 eingibt dass dann dies akzeptiert wird.)

Private Sub TextBox1\_LostFocus()
Dim Hinweis As String
Hinweis = "Bitte 6 Zeichen eingebn"
If Len(TextBox1.Value) 6 Then
 TextBox1.Value = Hinweis ' oder msgbox Hinweis
 TextBox1.Activate
Else
 TextBox1.Value = Left(TextBox1.Value, 4) & "-" & Mid(TextBox1.Value, 5)
End If
End Sub

Gruß
Reinhard

Hallo Reinhard

Ich habe ein kleines Problem - wieder einmal!! :smile:

Und zwar kämpfe ich immer noch mit meiner PSP-Element-Nummer. Die Nummer kann folgende zwei Formate einnehmen:

WE/1000-50-20-10 oder
WE/1000-50-20

ich habe nun die Zelle in Excel wie folgt formatiert:
„WE/“####"-"##"-"##"-"##
Gebe ich jetzt nur 10005020 ein, so sieht es wie folgt aus:
WE/10-00-50-20 --> und das ist falsch, denn es sollte so aussehen:
WE/1000-50-20

ich weiss, in Access kann man vor die Formatierung ein ! setzen, damit füllt Access dann die Formatierung von links nach rechts aus und nicht wie hier in Excel von rechts nach links.

Gibt es hier auch eine entsprechende Lösung oder hast du einen anderen Tip?

Das Ziel ist es, dass ich via Daten Gültigkeit dann noch sage, dass nur Zahlen erlaubt sind. Ich will damit erreichen, dass niemand eine falsche Zahl eingeben kann. Wenn ich gerade von Gültigkeitskontrolle bei Zahleneingaben spreche. Gibt es die Möglichkeit, dass ich die Eingabe auf Zahlen UND die maximale Eingabelänge auf 10 Stellen begrenze?

Ich glaube, wenn ich dieses Problem gelöst habe, dann kann ich das Problemkind PSP-Element abhaken!

Gruss
André

Ich konnte das Problem lösen. Ich habe jetzt einfach eine VBA-IF-Routine geschrieben, die die Formatierung übernimmt, wenn eine bestimmte Anzahl Zeichen in die Box geschrieben wurden. Ist nicht ganz die optimale Lösung - aber es funktioniert.