E perché non gmaaaa. Se è breve(l'immissione) che sia breve... ;-)
Le date non sono una cosa semplice da gestire. Devi dare all'utente qualcosa di chiaro per inserirle correttamente nel formato che vuoi tu
Esatto è la regola è che se si vuole fare l'inserimento "breve", cioé senza le barre, le modalità di inserimento sono solo due:
inserimento in modalità ddmmyy o in modalità ddmmyyyy (altrimenti inserisci le date in modalità standard).
Proprio perché la gestione delle date non è cosa semplice vanno fatte delle scelte.
Fai l'esempio di 132016 (dmyyyy).
Il codice che dovesse convertire in data questa stringa di valori cosa dovrebbe fare?
Iniziare ad analizzare la data come se fosse ddmmyy verificando che non è una data valida (13/20/16).
Allora analizzare in maniera differente considerando dmyyyy. Ok è una data valida.
Quindi significa un'altra opzione.
Ma allora perché non 1316 (quattro caratteri)? Significa un'altra opzione.
Nel mio caso la regola è data. Se inserisci 132016 restituisco un errore e di dico che la data va inserita in quella modalità (ora nello specifico nel messaggio non è indicato ma ben potrebbe aversi un msgbox con indicato quali formati utilizzare).
Per farti un esempio il programma utilizzato per la contabilità consente solo 4 tipi di inerimento
ddmmyy, ddmmyyyy, dd/mm/yy, dd/mm/yyyy. Non sono ammesse altri tipi di inerimento
Ecco che come dici queste sono le regole che sono state imposte per l'inserimento.
Se inserisco 1/1/2016 (che volendo potrebbe essere considerata una data valida andando ad estrapolare i valori compresi tra le barre) mi viene segnalato data non valida (evidentemente i programmatori hanno deciso di leggere 8 caratteri e considerare i primi
due "1/" per gg "1/" per mm e "2016" per yyyy e poiché non è una data valida avvisa che non è stata inserita nel modo che loro voglio).
Si tratta di stabilire come vanno inserite le date e, nel caso specifico, viene fatto (ho indicato le condizioni, come quella che la cella sia formattata come testo perché altrimenti excel elimina lo 0 iniziale).
Per quanto riguarda la richiesta iniziale di una tale modalità di inserimento personalmente la capisco.
Ti posso assicurare che alla lunga inserire 010116 piuttosto che 01/01/16 comporta una riduzione di tempo e soprattutto una minore probabilità di inserire una data non valida (a prescindere che sia la data corretta da inserire che è altro problema perché
anche con un calendario potrei cliccare sul 03/05/2016 invece che sul 02/05/2016). Le dita rimangono sempre nell'ambito dei numeri del tasterino. Già spostarsi sulla barra rappresenta una "interruzione" del movimento delle dita.
Così come posso dirti che alla fin fine l'inserimento "ddmmyy" diventa un inserimento anche più naturale di "dmyy" o "dmmyy" o "ddmyy".
Diventa automatico considerare sempre il giorno e il mese composto da due caratteri.
Mentalmente diventa la "regola" e altre modalità diventano eccezioni "non naturali" e le dita si muovono in automatico in tale modalità. La mente tende a standardizzare più di quanto si pensi. Ma questa è altra questione :-)
Da qui, ai tempi, l'idea di replicare la cosa anche se alla fine utilizzato solo per un mio file.
Con l'occasione ho provato a implemetare e, fissate le regole, mi pare che il funzionamento sia coerente.
Poi ovvio che nell'utilizzo sul foglio occorrerebbe valutare se l'inserimento in celle in formato testo sia fattibile o meno.
Nel caso di utilizzo di Userform e di relativi TextBox, che comunque restituirebbero una stringa di testo da convertire in data, potrebbe avere un senso consetire l'inserimento in modo ddmmyy o ddmmyyyy (per poter gestire in maniera più "evidente" l'anno
senza affidarsi a "conversione" in base a "convenzione").