Option Explicit
Public Function sais_heure(T As MSForms.TextBox, w) As String
'--merci de laisser ces 2 lignes de commentaires si vous utilisez ce mécanisme--
'-- l'auteur de cette fonction est Jacques Marquès------------------------------
Dim z As String, kk As String
kk = IIf(Len(w) = 3, Left(w, 1), "")
sais_heure = T.Text
If Len(sais_heure) = 2 Then sais_heure = IIf(kk = "", sais_heure & ":", kk)
z = sais_heure & Mid("00:00", Len(sais_heure) + 1)
If Not z Like "##:##" Or Not IsDate(z) Then sais_heure = w: Exit Function
w = sais_heure
End Function