Per avere un registro dove poter segnare le modifiche fatte ad un file possiamo precedere in questo modo.
Inseriamo un nuovo foglio di lavoro
Tasto destro su Foglio4
Rinominiamolo in Log
Doppio click su Questa_cartella_di_lavoro per le 2007 e sucessive o ThisWorkbook nella versione 2003 di Excel
Nel menù a tendina al posto di (generale) scegliamo Workbook ed al posto di (dichiarazioni) scegliamo Open ed incolliamo il codice riportato a fine archivio
La Funzione End(xlUp) parte dalla riga 65000 e sale fino alla prima riga occupata. Con Offset (1,0) specifichiamo di scrivere nella riga sottostante all’ultima ma nella medesima colonna.
Con gli End(xlUp) sucessivi non abbiamo bisogno di offset per la riga ma per la colonna
Riepilogando avremo nella colonna A la data in B l’ora di apertura in D L’utente e dall’immagine sottostante ricaviamo che in C abbiamo l’orario di chiusura mentre in F il nome del file
Ora al posto di Open nel menù a tendina scegliamo BeforeClose ed incolliamo il codice che trovate in fondo all’articolo
A questo punto non ci resta che mettere una piccola formula per determinare quanto è rimasto aperto il file
Compiliamo la riga 1 come in figura nella colonna E mettiamo questa formula =SE(C2=””;””;C2-B2) e la trasciniamo per qualche centinaio di celle
La funzione sarebbe Se C2 è vuota allora lascia vuota la cella altrimenti metti il risultato C2-B2
Private Sub workbook_open() Sheets("Log").Range("A65000").End(xlUp).Offset(1, 0).Value = Date Sheets("Log").Range("A65000").End(xlUp).Offset(0, 1).Value = Time Sheets("Log").Range("A65000").End(xlUp).Offset(0, 3).Value = Application.UserName End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Log").Range("A65000").End(xlUp).Offset(0, 2).Value = Time Sheets("Log").Range("A65000").End(xlUp).Offset(0, 5).Value = ThisWorkbook.Name End Sub
Come sempre il file log potrebbe essere nascosto cliccando con il tasto destro sopra la linguetta del nome del foglio e selezionando Nascondi