Re
Votre code fonctionne très bien pour ce que vous voulez faire.
Toutefois je le changerais par celui ci pour éviter la suspension des événements avec l'instruction "application.enablevents"
Dim ok As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
'format heure - saisie sans les :
Dim Heures As Single, Minutes As Single
If ok = True Or Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("J3:k10000")) Is Nothing Then
ok = True
If Target.Value <> "" Then
If Right(Target, 2) * 1 >= 60 Then
MsgBox "Nombre invalide !"
ok = False
Exit Sub
End If
Minutes = Right(Target, 2) / 1440
If Len(Target) > 2 Then Heures = Int(Target / 100) / 24
Range(Target.Address) = Heures + Minutes
End If
End If
ok = False
'Contre la modification après saisie
If Not Intersect(Target, Range("Bloc")) Is Nothing Then
ActiveSheet.Unprotect Password:="admin"
Target.Locked = True
ActiveSheet.Protect Password:="admin"
End If
End Sub
Si ok, n'oubliez de cliquer sur le petit v pour cloturer le fil
Cordialement