Jest na to rozwiązanie! Umieść ten kod VBA w swoim module arkusza, czyli:
- Otwórz edytor Visual Basic (Alt-F11)
- W lewym górnym widoku drzewa kliknij dwukrotnie na arkusz, do którego chcesz wprowadzić czasy
- W środkowym panelu kodu umieść poniższy kod.
- Zamknij VBE
Użyj tego kodu:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
Application.EnableEvents = False
Target.Value = Target.Value / 60
Target.NumberFormat = "mm:ss"
Application.EnableEvents = True
End Sub
W przypadku, gdy sformatowałeś już zakres, do którego wprowadzasz dane, użyj zamiast tego tej linii jako pierwszej linii:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
Zauważ, że będzie to zmieniać wartość i format - za każdym razem, gdy wprowadzisz albo czas - albo coś, co jest pomiędzy 0 a 1! Jeśli chcesz ograniczyć to do określonej kolumny, dodaj tę linię:
If Target.Column <> 3 Then Exit Sub
lub tę linię, aby ograniczyć to do określonego zakresu
If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub