Risposte:
Sto usando Excel 2010, quindi non sono sicuro di dove sia l'opzione equivalente in Excel 2003.
Vecchio post, ma questo può aiutare alcuni a cercare su Google (anche io non sono un esperto di Excel)
Formatta la cella come testo con un formato personalizzato 00\:00
Ciò consentirà agli utenti di inserire un tempo militare nella cella senza ":"
Impostare le opzioni di convalida dei dati sulla cella (EG E16) come personalizzate con la seguente formula
=AND(ISNUMBER(E16),(VALUE(LEFT(TEXT(E16,"00\:00"),2))>=0),(VALUE(LEFT(TEXT(E16,"00\:00"),2))<=23),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))>=0),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))<=59))
La convalida controlla se si tratta di un numero e quindi se il lato HH del valore temporale è compreso tra 0 e 23 e quindi se MM è compreso tra 0 e 59.
Uso la stessa cosa per limitare il tempo militare, tuttavia, la convalida dei dati accetta imperi con dita grosse (tre cifre dopo i due punti) e quindi mostra un orario errato . Ad esempio, se vuoi inserire 13:44 per il tuo tempo e accidentalmente metti 13: 444 , non solo ci vuole ma mostra un tempo di 20:24
Quel tempo 20:24 è proprio quello che ho inserito per le ore (13) più i 444 minuti convertiti in ore: minuti (7:24), quindi invece delle 13:44 desiderate dà 13:00 + 7:24 o 20: 24 .
Ora capisco la matematica e perché Excel converte 444 minuti in 7:24, ma ciò NON dovrebbe verificarsi in una voce di convalida dei dati. Essendo questa la convalida dei dati, dovrebbe troncare 444 a 44 o dare un messaggio di errore.
Vorrei suggerire che VBA (Macro) si occuperà della voce Time nella colonna o intervallo specificata. Questa macro convertirà qualsiasi valore di 4 cifre in un formato ora appropriato.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Dim xHour As String
Dim xMinute As String
Dim xWord As String
Application.EnableEvents = False
xWord = Format(Target.Value, "0000")
xHour = Left(xWord, 2)
xMinute = Right(xWord, 2)
On Error Resume Next
Target.Value = TimeValue(xHour & ":" & xMinute)
On Error Resume Next
Application.EnableEvents = True
End Sub
NB
1725
Macro, lo convertirà in
05:25:00 PM
.Range ("A:A")
è modificabile, dovrebbe
Range("A1:A10")
o Range("B10:C10")
anche.