Textbox Worter Zahlen und Fehler Melden Msg

valeripf

Erfahrenes Mitglied
Gibts es möglichkeit in UserForm bei TexBox1

1 Wenn Textbox1 Keine wert Kein Fehler durch Msg
2 Wenn Wert eingegeben Dann Muß 2 oder 3 Wörter sein durch die Leerzechne Oder Stich getänt
(Wie Vor-und Nachname )

Wenn nicht der Fall dann Msg ("Wert muß 2 Oder 3 Wörter erhalten")

das ganze ist in einem TextBox
 
Zuletzt bearbeitet:
Es gibt die Funktion SPLIT mit der du Text nach einem bestimmten Zeichen in Einzelteile zerlegen kannst.

Visual Basic:
Sub test()

worte = "111 222 333 444 555 "

einzeln = Split(worte, " ")

For arrayfeld = 0 To UBound(einzeln)
    Debug.Print einzeln(arrayfeld)
Next arrayfeld

End Sub

In diesem Beispiel wird der Inhalt der Variable "worte" auf Leerzeichen geprüft und die so gefundenen Werte an die Variable (das Array) "einzeln" übergeben.

In der Schleife werden dann die einzelnen Werte im Direktfenster (musst du eventuell bei dir einblenden) ausgegeben.

Schau mal ob dir das hilft.
 
bei mir zeigt in Direckt fester

Code:
111
222
333
444
555

111
222

u.s.w.
nur ich weis nicht was es ist ich habe Direckt Fenster ni benutzt
 
Schau dir doch mal den Code von mir an, dann solltest du verstehen was die Ausgabe bedeutet.

Der Inhalt der Variable "worte" steht für dein Textfeld. Es hat im Beispiel den Text "111 222 333 444 555" die Zahlenfolgen sind immer durch ein Leerzeichen getrennt.

Die Funktion SPLIT untersucht die Zeichenfolge eben nach diesem Zeichen und teilt den Text in die einzelnen Werte auf.

Als Ergebnis kommt deshalb heraus: "111", "222", "333", "444" und "555"

Ändere im Beispiel einfach mal den Inhalt der Variablen "worte" zum Bespiel in "Peter Müller" oder "Susanne Schmidt" oder auch "Frank-Martin Huber".

Wenn du den Code dann ausführst, wirst du sehen das jeweils der Vor- und der Nachname getrennt ausgegeben werden.

Noch was zum Direkt-Fenster: Die Anweisung "Debug.Print" erzeugt die Ausgabe im Direkt-Fenster. Es ist einfach nur zum Testen da damit du siehst was dein Code macht!
 
hi

Gibst es keine möglichkeit

so was aber ur für zwei Wörter

Code:
Private Sub CommandButton4_Click()
'Page1
If TextBox1.Value = "" Then
MsgBox ("Bitte Original Name Eingeben")
'Fehlerüberprüfen auf leere Feld TextBox1
'Page 1 Überprüfen
Text.Box1.SetFocus
Exit Sub
End If
 
Hast du dir das Beispiel von mir überhaupt mal richtig angeschaut? In meinem letzten Beitrag habe ich doch geschrieben das du auf einfach zwei Namen (Vor-/Nachname) angeben kannst.

Neues Beispiel:

Visual Basic:
Private Sub CommandButton1_Click()

worte = Split(txtEingabe.Value, " ")

If Len(txtEingabe.Value) = 0 Or UBound(worte) <> 1 Then
    MsgBox "Die Eingabe ist ungültig!", vbOKOnly, "Fehler"
    Exit Sub
End If

txtVorname.Value = worte(0)
txtNachname.Value = worte(1)

End Sub

In der Userform gibt es die Textfelder "txtEingabe", "txtVorname" und "txtNachname" sowie den Button "CommandButton1"

Wenn du die Form so erstellt hast, gibst du in das Textfeld "txtEingabe" z.B. "Peter Müller" oder "Frank-Martin Schmidt" ein und klickst auf den Button.

Als Ergebnis wird dir dann der Vorname und der Nachname im entsprechenden Feld angezeigt.

Gibst du nur einen Namen oder auch gar nichts ein, wird die Fehlermeldung angezeigt!
 
Natürlich geht das auch.

Du solltest dir aber vielleicht mal anschauen was man dir hier so zur Verfügung stellt und versuchen zu verstehen was da passiert.

Ich gehe davon aus das du lernen möchtest wie man solche Dinge löst und nur vom kopieren lernst du nicht wirklich viel.

Versuche deshalb zuerst mal selber die Lösung zu finden. Wenn es nicht klappt, helfe ich dir gerne wieder.
 
So sieht es jetzt aus:

Visual Basic:
If Len(txtEingabe.Value) = 0 Or UBound(worte) <> 1 Then

wenn das Textfeld leer sein darf, dann musst du die obige Zeile einfach so ändern:

Visual Basic:
If UBound(worte) <> 1 Then

Somit wird nur geprüft ob das Array "worte" zwei Werte enthält.
Arrays beginnen normalerweise immer bei 0. Bedeutet also wenn es zwei Werte gibt, muss UBound als höchsten/größten Index die Zahl 1 liefern. Das mag für dich jetzt ziemlich verwirrend klingen, du musst dich einfach mal ein bisschen mit dem Thema Array beschäfftigen dann sollte es klarer werden.
 

Neue Beiträge

Zurück