Bitte an Matthias.....
01.07.2017 09:27:33
STeve
Lieber Matthias - - Guten Morgen.
Habe jetzt User-Zeiteingabe-Format auf:
..:.. - ..:..
vereinfacht/geändert.
Bei deinem ua. cbo Code bräuchte ich noch:
1.) dass die Eingabe über 24:00 nicht möglich ist. Leider kann der User derzeit noch z.B. Zeiteintragungen von 34:00....44:99.....usw. eintragen.
konkret: Pos 1 und Pos 9 nur bis max. "2"
Pos 2 und Pos 10 nur bis max. "4"
Pos 4 und Pos 12 nur bis max. "5"
2.) Durch die Vereinfachung auf - (Bindestrich) müsste der Asc Code 45 - aber eben nur auf Pos 7 zulässig bzw. Pflicht sein.
Hier dein - geänderter - Code:
Private Sub cboJD_Uebersichtbei_3_Change() 'matthias am 30.6.17
Dim eintrag()
Dim i As Long
Dim wert As String
Dim teil
If Me.cboJD_Uebersichtbei_3.Tag = "x" Then Exit Sub
'eintrag = Array(0, 1, 1, ":", 1, 1, " ", "b", "i", "s", " ", 1, 1, ":", 1, 1) 'bei "bis" _
dann 15 STellen gesamt
eintrag = Array(0, 1, 1, ":", 1, 1, " ", "-", " ", 1, 1, ":", 1, 1) ' nur mit _
Bindestrich - = Asc Code 45, 13 STellen gesamt
wert = cboJD_Uebersichtbei_3.Value
If wert = "" Then Exit Sub
For i = 1 To Len(wert)
If i > 13 Then Exit Sub 'Eigenbau damit nicht mehr als 13 Stellen eingetragen werden können
If Len(wert) > UBound(eintrag) Then
wert = Left(wert, UBound(eintrag))
Me.cboJD_Uebersichtbei_3.Tag = "x"
Me.cboJD_Uebersichtbei_3.Value = wert
Me.cboJD_Uebersichtbei_3.Tag = ""
End If
If Asc(Mid(wert, i, 1)) > 47 And Asc(Mid(wert, i, 1)) eintrag(i) Then
If Me.cboJD_Uebersichtbei_3.Tag "y" Then MsgBox "1.) Nur Werte von 00:00 - 24:00 mö _
glich!" & Chr(10) & "2.) G E N A U Format ..:.. - ..:.. verwenden!", , "Falsche Eingabe von Wert oder Format:"
Me.cboJD_Uebersichtbei_3.Tag = "y"
cboJD_Uebersichtbei_3.Value = Left(wert, Len(wert) - 1)
Me.cboJD_Uebersichtbei_3.Tag = ""
Exit Sub
End If
Next i
End Sub
In der Hoffnung dass du mir das noch richtest verbleibe ich
mit LG
STeve
Anzeige