Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, sep$, t$, pos1%, pos2%
Set r = [B5:C35] 'cette plage doit être au format Texte
Set r = Intersect(Target, r)
If r Is Nothing Then Exit Sub
sep = Mid(0.1, 2, 1) 'séparateur décimal de l'ordinateur
Application.EnableEvents = False
On Error Resume Next 'sécurité
For Each r In r 'si entrées/effacements multiples
t = Replace(Replace(Replace(r, ".", sep), ",", sep), ":", sep)
pos1 = InStr(t, sep) 'position du 1er séparateur
pos2 = InStr(pos1 + 1, t, sep) 'position du 2ème séparateur
If pos2 > pos1 Then t = Left(t, pos2 - 1)
t = Replace(Format(t, "00.00"), sep, ":")
r = IIf(IsDate(t), t, "")
Next
If Target.Count = 1 Then If Target = "" Then Target.Select
Application.EnableEvents = True
End Sub