Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, x$, i%
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
For Each c In UsedRange 'si entrées multiples
x = c
For i = 2 To Len(x)
If Not IsNumeric(Mid(x, i, 1)) Then
x = Left(x, i - 1) & ":" & Mid(x, i + 1)
If IsDate(x) Then c = Format(x, "h:mm")
Exit For
End If
Next i, c
Application.EnableEvents = True 'réactive les évènements
End Sub