lettura normale

Le variabili di tipo Date in una macro Excel

In questa lezione ti spiego cosa sono le variabili Date in una macro Excel.

Cos'è una variabile di tipo Date? E' una variabile usata per memorizzare le date e gli orari all'interno di una macro. Questo tipo di dati ti permette di confrontare due date e di eseguire operazioni e calcoli usando le date e gli orari.

Per usare una variabile di tipo Date devi prima dichiararla con l'istruzione Dim e il tipo dati Date.

Dim dataCorrente As Date

Dopo averla dichiarata, puoi assegnare alla variabile una data nel formato MM/GG/AAAA (mese/giorno/anno) o un orario nel formato HH:MM:SS

Le date e gli orari vanno scritte sempre tra due caratteri hash # (cancelletto)

dataCorrente = #31/07/2020#

Nota. Puoi scrivere la data anche nella notazione americana MM/GG/AAAA (mese/giorno/anno) oppure AAAA/MM/GG (anno/mese/giorno) e altri formati ancora.

Ti faccio un esempio pratico.

Scrivi questa macro.

  1. Sub Macro()
  2. Dim dataNascita as Date
  3. dataNascita = #31/07/2020#
  4. Range("B2").Value = dataNascita
  5. End Sub

La macro definisce una variabile di tipo Date chiamata dataNascita e gli assegna la data 31/07/2020.

Poi scrive il contenuto della variabile nella cella B2 usando il comando Range("B2").Value = dataNascita

Nella cella B2 del foglio Excel viene visualizzata la data "31/07/2020"

la data corrente

Nota. Quando dichiari una variabile non dargli mai il nome Date perché potresti modificare la data di sistema del tuo PC.

Per leggere la data corrente puoi usare la funzione Now.

Ad esempio, digita questa macro

  1. Sub Macro()
  2. Dim dataNascita, dataCorrente as Date
  3. dataNascita = #31/07/2020#
  4. dataCorrente = Now
  5. Range("B2").Value = dataNascita
  6. Range("B3").Value = dataCorrente
  7. Range("B4").Value = dataCorrente - dataNascita
  8. End Sub

La macro definisce due variabili di tipo Date con il nome dataNascita e dataCorrente.

Nella variabile dataNascita memorizza la data 31/07/2020 mentre nella variabile dataCorrente scrive la data corrente del PC tramite la funzione Now.

Scrive nella cella B2 il contenuto della variabile dataNascita e nella cella B3 il contenuto della variabile dataCorrente.

la differenza è di 941 giorni

Poi calcola la differenza tra le due date tramite l'operazione dataCorrente-dataNascita e scrive il risultato nella cella B4.

In questo caso la differenza tra le due date è di circa 941 giorni.

E per registrare gli orari?

Puoi usare le variabile Date anche per registrare un orario.

Anche in questo caso devi scrivere il dato tra due caratteri hash #

dataNascita = #31/07/2020 18:15:00#

Se scrivi solo l'orario senza la data, Excel considera un'ora del giorno corrente.

oraAppuntamento = #18:15:00#

Ad esempio, digita questa macro.

  1. Sub Macro()
  2. Dim oraCorrente, oraAppuntamento as Date
  3. oraAppuntamento = #5:30:00 PM#
  4. oraCorrente = Time
  5. Range("B2").Value = oraAppuntamento
  6. Range("B3").Value = oraCorrente
  7. Range("B4").Value = oraAppuntamento-oraCorrente
  8. End Sub

Questa macro definisce due variabili di tipo Date chiamate oraCorrente e oraAppuntamento.

Poi assegna alla variabile oraCorrente l'orario #5:30:00 PM# (ossia 17:30) e alla variabile oraCorrente l'ora corrente del PC tramite la funzione Time.

Nota. Nella macro Excel devi scrivere gli orari nel formato #HH:MM:SS AM/PM# digitando AM per le ore antimeridiane e PM per le ore pomeridiane. Ad esempio, se digiti #17:30:00# in una macro, il linguaggio VBA di Excel lo modifica automaticamente in #5:30:00 PM#

La macro visualizza l'ora dell'appuntamento nella cella B2 e l'ora corrente nella cella B3.

Infine, calcola la differenza tra i due orari tramite l'operazione oraAppuntamento-oraCorrente e visualizza il risultato nella cella B4.

il risultato sul foglio Excel

In questo caso il risultato è circa 0,0847

Questo numero indica la frazione del giorno che manca per arrivare all'orario indicato.

Spiegazione. In un giorno ci sono 24 ore e ogni ora ha 60 minuti. Quindi, un giorno è composto da 1440 minuti. $$ 24 \cdot 60 = 1440 \ \text{minuti} $$ La frazione di 0,0847 (circa 8,47 %) di 1440 minuti è circa 122 $$ 1440 \cdot 0,0847 = 121,968 $$ Questo vuol dire che mancano quasi 122 minuti all'appuntamento (ossia due ore). In effetti, l'ora corrente dell'esempio è 3:27 PM mentre l'ora dell'appuntamento è 5:30 PM. La differenza è di circa due ore.

Questi sono solo alcuni semplici esempi pratici per spiegarti come utilizzare le variabili Date in una macro di Excel.

In generale, le variabili Date ti consentono di fare molto di più.

Puoi usarle per automatizzare operazioni sul foglio di calcolo Excel che sarebbero molto più complicate da eseguire manualmente, risparmiando tempo e riducendo il rischio di compiere degli errori.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin