Limitare l’inserimento di date precedenti

Se utilizzi le funzionalità di convalida dei dati di Excel, puoi limitare ciò che viene inserito in una cella in base al contenuto di un’altra cella. Ad esempio, puoi facilmente limitare ciò che va nella cella A2 in base a una data che si trova nella cella A1. Segui questi passaggi:

  1. Seleziona la cella A2.
  2. Fai clic sulla scheda Dati della barra multifunzione.
  3. Fai clic su Convalida dati nel gruppo Strumenti dati. Excel visualizza la finestra di dialogo Convalida dati.
  4. Assicurati che la scheda Impostazioni sia visualizzata.
  5. Utilizzando l’elenco a discesa Consenti, scegli Data.
  6. Utilizzando l’elenco a discesa Dati, scegli Maggiore o uguale a.
  7. Nella casella Data di inizio immetti =A1. Questo dice a Excel che la data deve essere maggiore o uguale a qualunque data si trovi nella cella A1.
  8. Fai clic su OK.

 

Limitare l'inserimento di date precedenti 1

 

Ora, ogni volta che provi a inserire una data nella cella A2 che sia precedente alla data presente nella cella A1, Excel visualizzerà un messaggio di errore e non consentirà l’inserimento della data.

Cosa succede, invece, quando si vogliono limitare le date che possono essere inserite nella cella A1? Ad esempio, se inserisci la data 4/1/2022 nella cella A1 e vuoi assicurarti che la data successiva inserita in A1 non sia precedente al 4/1/2022. In altre parole, vuoi assicurarti che la cella A1 possa accettare solo date successive alla data attualmente in A1.

Questo problema è un po’ più difficile da risolvere. Se segui i passaggi precedenti ma selezioni la cella A1 nel passaggio 1, la convalida dei dati non funzionerà. Come mai? Poiché la data inserita nella cella A1 sarà sempre maggiore o uguale alla data inserita in A1, Excel non esegue il confronto con la data precedente in A1 durante la convalida dei dati.

L’unico modo per risolvere questo problema consiste nell’utilizzo di due macro. Innanzitutto, posiziona la seguente macro in un modulo normale:

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.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Questa macro deve essere chiamata da un’altra macro, la seguente, che deve essere inserita nella finestra del codice del foglio di lavoro, in modo che venga attivata ogni volta che si verifica una modifica nel foglio di lavoro stesso:

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.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Il modo in cui funzionano queste macro è davvero molto interessante. Visto che viene inserita nella finestra del codice del foglio di lavoro, quest’ultima si attiva ogni volta che viene apportata una modifica al foglio. Se la cella modificata è A1, viene eseguita la macro Date_Validation.

La macro Date_Validation acquisisce la data dalla cella A1 e crea una regola di convalida dati per la cella. Questo è tutto ciò che fa: imposta una regola di convalida dei dati che non consentirà l’inserimento di una data precedente alla data attualmente nella cella.

La bellezza della macro è che una volta che la regola di convalida dei dati è attiva, la volta successiva che la cella A1 viene modificata, la regola di convalida dei dati viene attivata prima che venga attivato l’evento Worksheet_Change. Pertanto, la regola di convalida dei dati assicura che possa essere inserita solo una data successiva alla data corrente. Una volta cancellata la convalida dei dati, la macro si occupa di reimpostare la regola di convalida e quindi di confrontarla con la data appena inserita.

Tags: , , , , , , , , , , , , , , , ,

Ti è stato utile?