Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
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
UF Textbox SetFocus Fehler
09.02.2020 17:15:03
Peter
Hallo,
ich habe eine UF mit mehreren Textboxes und Comboboxes.
In die Textbox1 soll ein Datum eingetragen werden. Mit Vorgabe Tag.Monat.Jahr (tt.mm.yyyy).
Wenn das Datum in TB1 richtig, soll die TextBox2 aktiviert werden (TextBox2.SetFocus).
Wenn kein Datum in TB1, dann soll die TB1 SetFocus erhalten
Wenn nur ein Teil vom Datum in TB1, dann soll TB1 SetFocus erhalten.
Mein bisheriger Code:
Private Sub TextBox1_Change()
If TextBox1.Tag = "JetztzNicht" Then Exit Sub  '"JetztzNicht" eingebaut in Commandbutton1  _
damit TextBox1_Change nicht ausgeführt wird
'Anfang Prüfung Textbox-Eingabe Tag-2Stellen und ".", Monat-2Stellen und "." und Jahr- _
4Stellen
If Me.TextBox1 = "" Then
CommandButton2.Enabled = True   'Beenden
Me.Label32.Caption = "bitte ""Datum"" eintragen!"
TextBox1.SetFocus
End If
If Me.TextBox1.Tag = "1" Then Exit Sub
If TextBox1.Value  "" Then
TextBox1.SetFocus
End If
If Len(Me.TextBox1) = 2 Then
If InStr(Me.TextBox1, ".") = 0 Then Me.TextBox1 = Me.TextBox1 & "."
ElseIf Len(Me.TextBox1) = 5 Then
If Len(Me.TextBox1) - Len(Application.Substitute(Me.TextBox1, ".", "")) 
Was mache ich bitte falsch? Könnt ihr mir bitte helfen.
Gruss
Peter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF Textbox SetFocus Fehler
09.02.2020 17:20:49
Hajo_Zi
der Fokus wird nicht gesetzt da Textbox nicht leer
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1.Value) Then
'    Label32.Caption = "Datum"
TextBox2.SetFocus
Else
TextBox1 = ""
Cancel = True
End If
End Sub

AW: UF Textbox SetFocus Fehler
09.02.2020 17:31:41
Peter
Hallo Hajo,
besten Dank für Deine Hilfe. Klappt fast.
Wenn ich in TB1 vom Datum z.B. 01.01. eingebe und dann die TB1 verlasse, wird die TB1 geleert und SetFocus erfolgt. Wenn ich aber z.B. 01.01.2 eingeben, wird dies als gültiges Datum erkannt und TB2 erhält SetFocus.
Wie kann ich erreichen, dass nur das komplette Datum gültig ist?
Noch eine weitere Frage: Wenn die TB1 den Focus erhält durch Canel = True, dann sind alle Funktionen der UF blockiert. Es wird dann das vollständige Ausfüllen der TB1 erwartet. Ein Abbruch ist dann nicht möglich. Gibt es auch hierfür eine Lösung?
Gruss
Peter
Anzeige
AW: UF Textbox SetFocus Fehler
09.02.2020 18:17:52
Peter
Hallo Hajo,
habe den Code wie folgt geändert:
Private Sub TextBox1_Change()
If TextBox1.Tag  "1" = True Then
If Len(TextBox1) = 2 Then
If InStr(TextBox1, ".") = 0 Then
' Punkt nach 2 Zeichen, falls noch nicht vorhanden
TextBox1 = TextBox1 & "."
End If
ElseIf Len(TextBox1) = 4 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", ""))  "." Then
' Punkt nach 4 Zeichen falls noch keine 2 Punkte
TextBox1 = TextBox1 & "."
End If
End If
ElseIf Len(TextBox1) = 5 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", ""))  "" Then
MsgBox "kein Datum!!!"
TextBox1 = ""
End If
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1.Value) Then
Label32.Caption = "Datum vorhanden"
TextBox2.SetFocus
Else
Label32.Caption = "leer - Datum nicht vorhanden"
TextBox1 = ""
Cancel = True
End If
End Sub
1. Wenn ich Datum beim Start korrekt eingeben - alles o.K.
2. Wenn ich Datum beim Start nur teilweise eingebe: z. B. 01.01. dann wird Jahreszahl ergänzt - o.K.
3. Wenn ich vom korrekten Datum die Jahreszahl entferne, dann wird beim Verlassen die Jahreszahl ergänzt - o.K.
4. Wenn ich das Datum ganz entferne und die TB1 verlasse, dann wird angezeigt, "MsgBox "kein Datum!!!"" aber die TB1 erhält keinen Focus. Wenn ich dann das Datum eingeben, geht dies nur wenn ich z.B. 01.01.2020 eingeben. Es erfolgt dann keine Vorgabe für die beiden Punkte.
Kannst Du mir hierbei bitte nochmals helfen.
Gruss
Peter
Anzeige
AW: UF Textbox SetFocus Fehler
09.02.2020 18:24:26
Hajo_Zi
Hallo Peter,
NEIN
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
Doch eingebaut
09.02.2020 18:27:29
Hajo_Zi
Hallo Peter,
Exit war bei mir nicht vorhanden.
Private Sub Txt_Datum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Txt_Datum = "" Then
Cancel = True
End If
End Sub
_ Gruß Hajo >
AW: noch Probleme
10.02.2020 07:37:18
Peter
Hallo Hajo,
anbei meine Musterdatei:https://www.herber.de/bbs/user/135092.xlsm
Folgende Hilfe benötige ich bitte:
1. Das Jahr darf nicht als das aktuelle Jahr vorgegeben werden, da auch ggf. das Vorjahr benötigt wird.
2. Wenn ich das Datum nach der Aktualisierung nochmals ändern muss, dann soll ebenfalls der jeweilige Punkt vorgegeben werden.
Vielleicht kannst Du mir hierbei nochmals behilflich sein.
Gruss
Peter
Anzeige
AW: noch Probleme
10.02.2020 17:42:40
Hajo_Zi
Hallo Peter,
Du hast es geändert das das Jahr ein gegeben werden muss.
Du hast den Code geändert das die Punkte nicht mehr automatisch gesetzt werden.
Also bin ich raus, das hat nichts mehr mit meinem Code zu tun.
In fremde Code arbeite ich mich nicht ein.
Viel Erfolg noch.
Gruß Hajo
AW: erledigt
10.02.2020 08:25:14
Peter
Hallo Hajo,
ich habe von Dir ein anderes Beispiel im Archiv gefunden und entsprechend abgeändert.
Option Explicit
Dim BoEnter As Boolean
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   erstellt von Hajo.ziplies@web.de  Stand 01.08.03
'   Datumseingabe  01.01.2003;1.1.2003 oder komlettes Jahr
'   Eingabe des Tages und des Monat zweistellig werden die Punkte automatisch gesetzt
'   sie können nur gelöscht durch markierung des punktes und der Zahl davor
'   Buchstaben werden ausgeschlossen, nur Zahlen und Punkt
'   die Überprüfung ob Datum erfolgt in Private Sub TextBox1_AfterUpdate()
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If Len(TextBox1) = 0 Then
KeyAscii = 0
Else
''                If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 2 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 4 Then
KeyAscii = 0
ElseIf Len(TextBox1) > 1 Then
If Mid(TextBox1, Len(TextBox1), 1) = "." Then KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox1_Change()
If BoEnter = True Then Exit Sub
If Len(TextBox1) = 2 Then
If InStr(TextBox1, ".") = 0 And BoEnter = False Then TextBox1 = TextBox1 & "."
ElseIf Len(TextBox1) = 5 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", ""))  TextBox1 Then
If Format(CDate(TextBox1.Value), "dd.mm.yyyy")  TextBox1 Then
'            MsgBox "Das Datum wurde übersetzt"
Label32.Caption = "Das Datum wurde auf das aktuelle Jahr ergänzt" _
& vbLf & "bitte Vorgang eingeben!" _
& vbLf & vbLf & "Falls ein anderes Jahr benötigt wird - z. B. das Vorjahr bitte ä _
ndern!"
End If
''        TextBox1 = Format(CDate(TextBox1.Value), "dd.mm.yy")
TextBox1 = Format(CDate(TextBox1.Value), "dd.mm.yyyy")
Label32.Caption = "gültiges Datum - bitte Vorgang eingeben!"
Else
TextBox1 = ""
End If
BoEnter = False
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value = "" Then
Label32.Caption = "bitte Datum eingeben!!!"
Cancel = True
End If
End Sub
Es funktioniert genau so, wie ich das möchte.
Nur eine Bitte hätte ich gerne noch. Durch "Cancel = True" wird der Focus aus die TextBox1 gesetzt.
Wenn ich jetzt an dieser Stelle abbrechen möchte ist dies nicht möglich, das das Ausfüllen der TextBox1 erwartet wird. Wie kann ich erreichen, dass dies durch einen Button möglich ist.
Gruss
Peter
Anzeige

110 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige