Private Sub Worksheet_Change(ByVal Target As Range)
Dim HeurNum As String
Dim HeurHeur As String
Dim LongSaisie As Integer
If Not Intersect(Target, Range("F:H")) Is Nothing Then
'Si on saisit une formule, on sort
If Target.HasFormula Then Exit Sub
'Si on saisit du texte, on sort
If IsNumeric(Target.Value) = False Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
'Initialisation des variables
HeurNum = Target.Value
LongSaisie = Len(HeurNum)
'Test de la longueur de la chaîne saisie
If LongSaisie = 1 Then
HeurNum = "00000" & HeurNum
ElseIf LongSaisie = 2 Then
HeurNum = "0000" & HeurNum
ElseIf LongSaisie = 3 Then
HeurNum = "000" & HeurNum
ElseIf LongSaisie = 4 Then
HeurNum = "00" & HeurNum
ElseIf LongSaisie = 5 Then
HeurNum = "0" & HeurNum
ElseIf LongSaisie = 6 Then
HeurNum = HeurNum
End If
'Initialisation de la variable retournée
HeurHeur = Left(HeurNum, 2) & ":" & Mid(HeurNum, 3, 2) & ":" & Right(HeurNum, 2)
'Modification de la valeur saisie
Target = HeurHeur
Application.EnableEvents = True
On Error GoTo 0
Else
End If
End Sub