Laurie sa come visualizzare le proprietà di una cartella di lavoro di Excel. Quello che vorrebbe fare, tuttavia, è visualizzare proprietà simili relative ai singoli fogli di lavoro. Ad esempio, si chiede se esiste un modo per visualizzare proprietà come data di creazione, data di modifica, autore o “ultima modifica da” per i singoli fogli di lavoro.

Sfortunatamente, Excel non tiene traccia di tali informazioni per i fogli di lavoro. L’unica soluzione che siamo stati in grado di capire è sviluppare il tuo record di informazioni sui fogli di lavoro nella cartella di lavoro. Un modo ovvio per sviluppare un gestore di eventi Workbook_SheetChange. Quello che segue è un esempio di quello che potresti aggiungere all’oggetto ThisWorkbook in Visual Basic Editor:

Private Sub Workbook_SheetChange(ByVal ws As Object, ByVal Target As Range)

Dim s As Worksheet     Dim J As Integer     Dim FoundIt As Boolean

On Error Resume Next     Set s = Worksheets("Stats")

On Error GoTo 0     Application.EnableEvents = False     If s Is Nothing Then         ' Stats worksheet did not exist         Set s = Worksheets.Add(After:=Worksheets(Worksheets.Count))

s.Name = "Stats"

s.Range("A1") = "Worksheet"

s.Range("B1") = "Creator"

s.Range("C1") = "Last Modified"

s.Range("D1") = "Modifed By"

With s.Range("A1:D1")

.Font.Bold = True             .Borders(xlEdgeBottom).LineStyle = xlContinuous             .Borders(xlEdgeBottom).Weight = xlThin         End With

s.Range("A2") = s.Name         s.Range("B2") = s.CustomProperties.Creator         s.Range("C2") = Format(Now, " mm/dd/yyyy  hh:mm am/pm")

s.Range("D2") = Application.UserName     End If     J = 2     FoundIt = False     While (s.Cells(J, 1) <> "")

If s.Cells(J, 1) = ws.Name Then             FoundIt = True             s.Cells(J, 3) = Format(Now, " mm/dd/yyyy  hh:mm am/pm")

s.Cells(J, 4) = Application.UserName         End If         J = J + 1     Wend     If Not FoundIt Then         ' Worksheet name not found         s.Cells(J, 1) = ws.Name         s.Cells(J, 2) = ws.CustomProperties.Creator         s.Cells(J, 3) = Format(Now, " mm/dd/yyyy  hh:mm am/pm")

s.Cells(J, 4) = Application.UserName     End If     ws.Activate     Application.EnableEvents = True End Sub

Il gestore eventi viene attivato ogni volta che si apporta una modifica nella cartella di lavoro. Innanzitutto verifica se è presente un foglio di lavoro denominato Stats. In caso contrario, viene creato il foglio di lavoro e vengono aggiunte alcune informazioni rudimentali. Il gestore cerca nel foglio di lavoro Stats per determinare se i dati includono una riga per il foglio di lavoro in cui si è verificata una modifica. In caso contrario, viene aggiunta una riga, ma in tal caso le informazioni nella riga vengono aggiornate.

Il gestore tiene traccia solo di quattro informazioni: il nome del foglio di lavoro, il creatore, la data dell’ultima modifica e il nome utente di chi ha apportato la modifica. (La proprietà Creator indica un valore numerico relativo al programma che ha creato il foglio di lavoro. Non è particolarmente utile per gli esseri umani e l’ho incluso come esempio illustrativo di come è possibile memorizzare le informazioni.)

Ricorda, questa è solo una soluzione alternativa e dovresti considerare attentamente quale tipo di informazioni desideri monitorare per i tuoi fogli di lavoro. È quindi possibile modificare il codice per riflettere quel desiderio.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (7542) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.