Laurie sabe cómo ver las propiedades de un libro de Excel. Sin embargo, lo que le gustaría hacer es ver propiedades similares en relación con hojas de trabajo individuales. Por ejemplo, se pregunta si hay alguna forma de ver propiedades como la fecha de creación, la fecha de modificación, el autor o la «última modificación por» de las hojas de trabajo individuales.

Desafortunadamente, Excel no realiza un seguimiento de dicha información para las hojas de trabajo. La única solución que hemos podido encontrar es desarrollar su propio registro de información sobre las hojas de trabajo en el libro de trabajo. Una forma obvia de desarrollar un controlador de eventos Workbook_SheetChange. El siguiente es un ejemplo de uno que podría agregar al objeto ThisWorkbook en el Editor de Visual Basic:

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

El controlador de eventos se activa cada vez que realiza un cambio en el libro de trabajo. Primero verifica si hay una hoja de trabajo llamada Estadísticas. De lo contrario, se crea la hoja de trabajo y se le agrega información rudimentaria. El manejador busca en la hoja de trabajo Estadísticas para determinar si los datos allí incluyen una fila para la hoja de trabajo en la que ocurrió un cambio. Si no es así, se agrega una fila, pero si es así, se actualiza la información de la fila.

El controlador solo rastrea cuatro piezas de información: el nombre de la hoja de trabajo, el creador, la fecha en que se realizó el último cambio y el nombre de usuario de quien realizó el cambio. (La propiedad Creator indica un valor numérico relacionado con el programa que creó la hoja de trabajo. No es muy útil para los humanos, y lo incluí como un ejemplo ilustrativo de cómo se puede almacenar la información).

Recuerde, esto es solo una solución y debe considerar cuidadosamente qué tipo de información desea rastrear para sus hojas de trabajo. Luego puede modificar el código para reflejar ese deseo.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (7542) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.