Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1700to1704
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
Benutzer muss in Textbox ein - angeben, sonst
02.07.2019 18:55:12
Sören
Hallo Leute,
ich weis, ich habe momentan viele Fragen. Ich habe gerade viele kleine Probleme an meinem Tool die ich alleine und auch mit Recherche im web nur schwer gelöst bekomme.
Ich möchte gerne für eine TextBox festlegen, dass der Benutzer gezwungen wird, ein "-" einzufügen. Wo ist egal. Wenn er in der TextBox kein "-" einfügt, kann er nicht weiter bzw. kann am Ende der Userform nicht speichern. Vielleicht hat ja einer da eine Lösung für.
Gruß Sören

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
02.07.2019 19:05:09
Hajo_Zi
Hallo Sören,
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If InStr(TextBox1, "-") = 0 Then
Cancel = True
End If
End Sub
Den kompletten Code musst Du selber erstellen, da Du den Gesamten Code siehst.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Benutzer muss in Textbox ein - angeben, sonst
02.07.2019 19:11:53
Piet
Hallo Sören
im Prinzip sollte es gehen, wenn du diesen Teil VOR den Code für den CommandButton "Eingabe speichern" setzt!
Welche TextBox gemeint ist musst du bitte selbst festlegen. Im Beispiel "TextBox1". (Evtl. musst du "UserForm1.TextBox1" schreiben)
mfg Piet
  'am Anfang des Code für -Eingabe speichern- einfügen!
If InStr(TextBox1.Text, "-") = 0 Then
MsgBox "Sie müssen noch ein '-' Zeichen eingeben, sonst kann nicht gespeichert werden!"
Exit Sub
End If

Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 00:30:48
Sören
Hallo Hajo und piet,
die beiden Funktionen laufen einwandbar. Vielen Dank. ich bin durch einen dummen Zufall auf einen altern Betrag von hier: https://www.herber.de/forum/archiv/1028to1032/1028513_Textbox_nur_bestimmte_Formatierung_zulassen.html
gestoßen. Hier konnte man eine festgelegte Reihenfolge festlegen. Ich finde diese Möglichkeit sehr gut und habe mich gleich daran gemacht es bei mir auszuprobieren leider ohne Erfolg. Jetzt weis ich auch nicht, ob dies bei mir überhaupt möglich ist.
Hier der Code von dem Beispiel:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Select Case TextBox1.TextLength
Case 7
If Left$(TextBox1.Text, 1) = "T" And _
IsNumeric(Mid(TextBox1.Text, 2, 5)) And _
Not IsNumeric(Right$(TextBox1.Text, 1)) Then Cancel = False Else Cancel = True
Case Else: Cancel = True
End Select
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case TextBox1.TextLength
Case 0
If Not KeyAscii = 84 Then KeyAscii = 0
Case 1 To 5
If (KeyAscii  57) Then KeyAscii = 0
Case 6
If (KeyAscii > 47 And KeyAscii 
Am Ende wollte er das der erste Eintrag ein T und der letzte ein Buchstabe ist. Dazwischen konnten 4 zahlen eingetragen werden.
Jetzt kommt meine Frage: Kann man diese Möglichkeit auch bei mir anwenden?
Ich würde dies gerne auf folgende Möglichkeiten umschreiben: (die 1 ist nur ein Beispiel. Es könnten auch anderen Zahlen stehen. Aber die Beziehungen wären entscheidend)
1-1
1-11
1-111
11-11
11-111
111-111
also das diese 6 Möglichkeiten zur Auswahl stehen. Würde mich über eure freuen.
Gruß Sören
Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 01:00:37
Werner
Hallo Sören,
versuch mal:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox1
If .Text Like "#-#" Or .Text Like "#-##" Or .Text Like "#-###" _
Or .Text Like "##-##" Or .Text Like "##-###" Or .Text Like "###-###" Then
MsgBox "allet jut"
Else
MsgBox "so nit"
End If
End With
End Sub
Gruß Werner
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 01:38:03
Werner
Hallo Sören,
hier in Kombination:
in Textbox nur Zahlen und Bindestrich möglich:
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 45, 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
auf richtiges Muster prüfen:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1  "" Then
With Me.TextBox1
If .Text Like "#-#" Or .Text Like "#-##" Or .Text Like "#-###" _
Or .Text Like "##-##" Or .Text Like "##-###" Or .Text Like "###-###" Then
MsgBox "allet jut"
Else
MsgBox "so nit"
End If
End With
End If
End Sub
Gruß Werner
Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 12:38:05
Sören
Hallo Werner,
danke für den Code. Macht genau das was ich will. Habe den Code noch erweitert um Cancel = True. Somit ist der Benutzer gezwungen den richtgen Wert einzugeben, sonst kann dieser nicht weiterarbeiten.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1  "" Then
With Me.TextBox1
If .Text Like "#-#" Or .Text Like "#-##" Or .Text Like "#-###" _
Or .Text Like "##-##" Or .Text Like "##-###" Or .Text Like "###-###" Then
MsgBox "allet jut"
Else
MsgBox "so nit"
Cancel = True
End If
End With
End If
End Sub

Jetzt ist mir noch aufgefallen, dass die Möglichkeit besteht, dass die zahl vor dem Bindestrich kleiner oder gleich sein kann, als die dahinter. Kann man dies eig auch noch begrenzen?
also irgendiwe so,
9 - 1 False
Gruß Sören
Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 12:43:43
Werner
Hallo Sören,
sorry, im Moment habe ich keine Ahnung was du meinst.
Gruß Werner
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 12:58:00
Sören
Hallo Werner,
habe es auch etwas schwammig erklärt. In der TextBox muss die Zahl hinter dem Bindestrich größer sein, als die vor dem Bindestrich sein. Das die Zahl gleich ist, sollte auch nicht gehen.
zum Beispiel:
das darf gehen:
1-8
25-78
300-578
das darf nicht gehen:
1-1 , weil Zahlen wären gleich
4-4 , weil Zahlen wären gleich
4-3 , weil die die erste Zahl größer wäre als die zweite
35-35 , weil Zahlen wären gleich
10-80 , weil die die erste Zahl größer wäre als die zweite
etc.
Hoffe konnte dir meine Problematik jetzt besser erklären.
Gruß Sören
Anzeige
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 14:09:22
Werner
Hallo Sören,
meinst du so?
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim pruef As Variant
If Me.TextBox1  "" Then
With Me.TextBox1
If .Text Like "#-#" Or .Text Like "#-##" Or .Text Like "#-###" _
Or .Text Like "##-##" Or .Text Like "##-###" Or .Text Like "###-###" Then
pruef = Split(.Text, "-")
If CLng(pruef(1)) > CLng(pruef(0)) Then
MsgBox "allet jut"
Else
MsgBox "so nit"
Cancel = True
End If
Else
MsgBox "so nit"
Cancel = True
End If
End With
End If
End Sub
Gruß Werner
AW: Benutzer muss in Textbox ein - angeben, sonst
03.07.2019 15:24:21
Sören
Hallo Werner,
genau so habe ich mir das vorgestellt. Funktioniert einwandfrei. Vielen Dank
Gruß Sören
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
03.07.2019 15:31:14
Werner

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige