Quando sviluppi un foglio di lavoro, potrebbe essere necessario tenere traccia di alcune informazioni sulla cartella di lavoro. Ad esempio, potresti voler inserire la data di creazione della cartella di lavoro in una cella. Sebbene Excel fornisca alcune funzioni per le date (come ADESSO o OGGI), non fornisce una funzione per accedere alla data di creazione della cartella di lavoro.
Ciò significa che l’unico modo per ottenerla risiede nell’utilizzo di una macro. Ad esempio, potresti creare una macro che determini la data corrente e la inserisca (come testo) in una cella particolare. Questa macro potrebbe quindi essere eseguita ogni volta che crei una nuova cartella di lavoro se inserisci la macro nel gestore eventi Workbook_Open (dell’oggetto Questa_cartella_di_lavoro). Di seguito è riportato un esempio di tale macro:
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)
La macro verifica cosa c’è nella cella A1. Se non c’è nulla, inserisce la versione testuale della data odierna. Se c’è già qualcosa (il che avverrebbe ogni volta che si aprisse successivamente la cartella di lavoro), l’informazione verrà lasciata intatta.
Forse un approccio migliore, tuttavia, consiste nell’accedere effettivamente al sistema operativo e recuperare la data di creazione del file per la cartella di lavoro corrente. Questo può essere fatto con la seguente funzione:
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)
Tieni presente che questo approccio non è legato a una cella particolare nel tuo foglio di lavoro. Per utilizzare la macro, inserisci semplicemente quanto segue in qualsiasi cella del tuo foglio di lavoro:
=DataCreazione()
La funzione restituisce “File non ancora salvato” (se la cartella di lavoro è nuova e non è stata salvata in precedenza) oppure restituisce un valore di testo che rappresenta la data in cui è stata creata la cartella di lavoro.
La data di creazione restituita da FileSystemObject (Windows) utilizzata nell’UDF non è però sempre affidabile. Quando copi un file, Windows mostra la data di copiatura come data di creazione. Lavorando con la copia otterresti quindi una data di creazione falsa.
Excel, però, tiene traccia della data di creazione reale ed è possibile accedervi tramite VBA con BuiltinDocumentProperties(“Creation Date”).
Volendo pertanto utilizzare questo metodo, dovremmo modificare il codice delle due macro mostrate finora in questo modo:
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)
Con questo metodo non è necessario verificare se A1 ha già una data perché essa non cambierà.
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)
in entrambi i casi, la cella di destinazione dovrà essere formattata come data ed il gioco è fatto.