King osserva che se una cella è formattata come hh: mm o [h]: mm e inserisci accidentalmente 3: 555 nella cella, ottieni 12:15 invece di 3:55.

Excel interpreta il 555 come 555 minuti, non 55 e 1/2 minuti. Si chiede se esiste un modo per proteggersi da tali errori di immissione dei dati, poiché non può ottenere la convalida dei dati per gestirli.

King ha ragione; la convalida dei dati non gestirà questo tipo di errore. Se imposti la convalida dei dati per consentire l’immissione dell’ora in una cella e quindi imposti i limiti dalle 12:00:00 alle 23:59:59 (in modo che qualsiasi ora sia consentita), accetterà ancora 3: 555 e interpreterà male 3 ore e 555 minuti o 12:15. Poiché 12:15 rientra nell’intervallo di tempo consentito, la convalida dei dati non presenta alcun problema.

La convalida dei dati potrebbe ancora essere utilizzata, tuttavia, se dividi il tempo immesso su due celle. Consentire all’utente di inserire ore in una cella e minuti in un’altra e utilizzare la convalida dei dati per applicare parametri di input accettabili per ciascuna cella. Ciò impedirebbe a 555 di essere accettato come numero di minuti valido. Potresti quindi convertire le due celle in un orario valido in questo modo:

=A1/24+B1/(24*60)

Diversi abbonati hanno suggerito di utilizzare una macro per controllare il contenuto della cella e interrompere la digitazione. Ogni suggerimento si basava sul gestore di eventi Worksheet_Change, che sembrava molto promettente. Nessuna delle soluzioni fornite, tuttavia, catturerebbe l’immissione di 3: 555 come errata. Il motivo è che nel momento in cui Excel ha passato il controllo all’evento Worksheet_Change, le sue routine interne avevano già analizzato la voce e l’hanno modificata in 12:15. Sebbene 3: 555 potesse essere contrassegnato e regolato in modo programmatico, il 12:15 analizzato non poteva: è ancora considerato un tempo valido, quindi ha navigato attraverso una qualsiasi delle macro Worksheet_Change.

L’unica soluzione basata su macro, quindi, sarebbe quella che utilizza una casella di input per consentire all’utente di inserire un tempo che potrebbe essere verificato prima che la macro la inserisca nel foglio di lavoro. Questo approccio, tuttavia, sembra molto più distruttivo per un facile input da parte dell’utente che utilizzare celle di minuti e secondi separate e applicare la convalida dei dati a tali celle.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13248) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.