1.- Debes poner el código dentro del evento CHANGE de la hoja.
2.- Dentro de un condicional que comprueba si la celda modificada es alguna de las celdas «hora», desactiva los eventos para que la corrección no dispare el evento nuevamente...
Application.EnableEvents= False
… luego colocas el código que fracciona el número, seguido de la construcción de la hora.
Un detalle en esta fracción de mi código…
Case3, 4
hor = Right("00" & hor, 4)
h = Left(hor, 2)
m =Right(hor, 2)
End Select
Target.Value = h &":" & m
… finalmente activa de nuevo los eventos