Come mostrare la data di Ultima modifica di una cartella di Excel

Se osservi le proprietà memorizzate in una cartella di lavoro, noterai che Excel conserva molte informazioni relative al file. Uno degli elementi è una data e un’ora contrassegnate come “Data ultima modifica”, ma che in realtà riflette l’ultima volta che la cartella di lavoro è stata salvata.

Se desideri utilizzare questa data nella tua cartella di lavoro (magari in un’intestazione o un piè di pagina), puoi farlo utilizzando la proprietà BuiltinDocumentProperties (che sembra quasi ridondante). La seguente macro aggiungerà tale data all’intestazione del documento:

 

Sub MiaIntestazione1()
    Dim sLMD As String

    On Error Resume Next
    sLMD = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")
    On Error GoTo 0
    
    If Len(sLMD) = 0 Then
        sLMD = "Non salvata"
    Else
    	sLMD = Format(sLMD, "dd/mm/yyyy")
    End If
    
    ActiveSheet.PageSetup.LeftHeader = "Ultimo salvataggio: " & sLMD
End Sub

 

 

Questa macro tenta di determinare la data dell’ultimo salvataggio della cartella di lavoro. Se tale informazione non può essere determinata, imposta l’intestazione su “Non salvata”.

Si noti che in questa macro viene eseguita una certa gestione degli errori. Il motivo è che Excel restituirà un errore se una particolare proprietà del documento (BuiltinDocumentProperties in questo caso) non è impostata. L’errore deve essere intercettato e gestito, cosa che viene fatta qui.

Un altro modo per ottenere l’informazione è quello di interrogare il File System di Windows.

Quanto segue legge l’attributo “Data ultima modifica” dal file stesso e memorizza tale informazione nell’intestazione:

 

Sub MiaIntestazione2()
    Dim fs As Variant
    Dim f As Variant
    Dim sLMD As String

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(ActiveWorkbook.Path & "\" & _
      ActiveWorkbook.Name)
    sLMD = Format(f.DateLastModified, "dd/mm/yyyy")
    ActiveSheet.PageSetup.LeftHeader = "Data ultima modifica: " & sLMD
End Sub

 

 

Le due macro potrebbero però fornire risultati discordanti e sapere le differenze tra i due metodi ti può aiutare a decidere quale utilizzare:

  • la proprietà BuiltinDocumentProperties(“Last Save Time”) terrà conto anche dei salvataggi automatici effettuati da Excel con la periodicità definita nelle Opzioni
  • la proprietà DateLastModified di FileSystemObject riporterà invece solo i reali salvataggi effettuati manualmente

 

Indipendentemente dalla macro utilizzata, ricorda che la macro, una volta eseguita, imposterà l’intestazione sinistra sulle informazioni desiderate. Tali informazioni non cambieranno più finché non eseguirai nuovamente la macro. Pertanto, se desideri sempre una data aggiornata nell’intestazione, dovresti eseguire la macro periodicamente (magari subito prima della stampa) o configurarla per l’esecuzione ogni volta che apri il documento.

 

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

Ti è stato utile?