Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v As Variant, i As Integer, m As String, r As Long
'è consentito digitare l'orario di seguito, senza segni di punteggiatura
'(es. 759 verrà interpretato come 7.59 e così scritto nella cella)
'il range orario valido e riconosciuto è "7.59" - "23.59"
'se è stata operata una selezione multipla esce dalla sub
If Target.Cells.Count > 1 Then Exit Sub
'se non è stato digitato un numero esce dalla sub
'attenzione! sono riconosciuti validi i segni di notazione matematica "e" e "d"
'"e" sta per esponente e "d" sta per segno decimale
'1e3 = 1^3 = 1000; 1d2 = 100; 1d-1 = 0,1
If Not IsNumeric(Target) Then Exit Sub
'se viene digitato un valore inferiore a '700' o superiore a '2359' esce dalla sub
If Target < 700 Or Target > 2359 Then Exit Sub
'disabilita gli eventi successivi in seguito all'inserimento di valori nelle celle
Application.EnableEvents = False
'il valore digitato viene formattato come orario hh:mm
Target = Format(Target, "00:00")
'riabilita l'intercettazione degli eventi
Application.EnableEvents = True
End Sub |