Bruno vorrebbe inserire una data digitando solo il mese e il giorno. Excel presuppone che l’anno sia l’anno corrente, invece Bruno vorrebbe che l’anno fosse quello della prossima occorrenza di quella data. Ad esempio, se oggi è il 6/12/22 e Bruno digita 7/12, Excel presuppone automaticamente l’anno 2022. Se Bruno digita 5/12 nello stesso giorno, Excel dovrebbe presupporre l’anno 2023, visto che il 5/12 è già nel passato. Bruno sa di poter utilizzare una formula per visualizzare la data in una cella diversa, ma si chiede come possa impostare Excel in modo predefinito su questo approccio mentre digita le date nelle celle.
A meno di giocare con la data del tuo sistema o apportare alcune modifiche alle date dopo l’immissione, la soluzione richiede l’uso di una macro. Il seguente gestore di eventi potrebbe svolgere il compito:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Per aggiungere questa macro alla tua cartella di lavoro, fai semplicemente clic con il pulsante destro del mouse sulla scheda del foglio di lavoro in cui desideri che sia operativa, quindi scegli Visualizza codice. Nella finestra del codice risultante, aggiungi la macro precedente.
Ora, ogni volta che apporterai una modifica nel foglio di lavoro, essa viene controllata per vedere se si tratta di una data. Se lo è e la data è precedente alla data odierna, alla data viene aggiunto un anno. Si noti che il codice verifica che l’anno della data immessa sia lo stesso dell’anno corrente. Senza questo controllo, qualsiasi data nel passato, anche date nel passato di molti anni, verrebbe incrementata. Questo probabilmente non è previsto, quindi il controllo è incluso.
La macro non influirà sulle date immesse in più celle contemporaneamente, né sulle date immesse come valori di testo.
Tale approccio presenta però dei problemi:
- Diventa impossibile inserire qualsiasi data per l’anno corrente che sia precedente alla data corrente.
- Qualsiasi cella con una formula che risulta in una data per l’anno corrente precedente alla data corrente verrà modificata in un valore di data costante avanzato di un anno. Ad esempio, se oggi è il 6/12/22, la formula =OGGI()-1 diventa il valore costante equivalente a 5/12/23.
- Si applica solo a un singolo foglio di lavoro (forse questo è un vantaggio, non un problema).
Un secondo approccio che risolve questi problemi può essere il seguente:
- Premi Alt+F11 per aprire Visual Basic Editor (VBE).
- In VBAProject > Microsoft Excel Oggetti, fai clic su Questa_cartella_di_lavoro e premi F7 per aprire il riquadro del codice.
- Copia il seguente codice VBA per Questa_cartella_di_lavoro (che si applica a qualsiasi foglio di lavoro in Questa_cartella_di_lavoro e ignora le celle con una formula):
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
- Dal menu VBE, seleziona Inserisci modulo.
- Copia il seguente codice VBA per questo nuovo modulo (che deve trovarsi nello stesso VBAProject):
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Ora, se oggi è il 6/12/22 e si digita 7/12, Excel assumerà l’anno 2022. Ma se oggi è il 6/12/22 e si digita 5/12 o 5/12/22 o 5/12/2022 , l’anno verrà modificato dal 2022 al 2023. Se si desidera che l’anno rimanga il 2022 invece di passare al 2023, puoi fare clic su Annulla o premere Ctrl+Z. L’unico modo per inserire una data per l’anno corrente precedente alla data corrente diventa un processo in due fasi: inserire prima la data desiderata, quindi fare clic su Annulla o premere Ctrl+Z. Dopo aver utilizzato Annulla, è possibile fare clic su Ripeti o premere Ctrl+Y (o F4) per ripristinare la modifica al 2023. Questo Annulla/Ripristina si applica solo all’ultima data inserita per l’anno corrente precedente alla data corrente (Nota: Excel non consente il controllo VBA di OnRedo, ma OnRepeat ha le stesse scorciatoie da tastiera).