Laurie sait comment afficher les propriétés d’un classeur Excel. Ce qu’elle aimerait faire, cependant, c’est afficher des propriétés similaires par rapport à des feuilles de calcul individuelles. Par exemple, elle se demande s’il existe un moyen d’afficher des propriétés telles que la date de création, la date de modification, l’auteur ou la «dernière modification par» pour les feuilles de calcul individuelles.

Malheureusement, Excel ne garde pas trace de ces informations pour les feuilles de calcul. La seule solution de contournement que nous avons pu trouver est de développer votre propre enregistrement d’informations sur les feuilles de calcul dans le classeur. Une manière évidente de développer un gestionnaire d’événements Workbook_SheetChange. Voici un exemple de celui que vous pourriez ajouter à l’objet ThisWorkbook dans 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

Le gestionnaire d’événements est déclenché à chaque fois que vous apportez une modification au classeur. Il vérifie d’abord s’il existe une feuille de calcul nommée Stats. Sinon, la feuille de calcul est créée et des informations rudimentaires y sont ajoutées. Le gestionnaire regarde dans la feuille de calcul Statistiques pour déterminer si les données contiennent une ligne pour la feuille de calcul sur laquelle une modification s’est produite. Sinon, une ligne est ajoutée, mais si tel est le cas, les informations de la ligne sont mises à jour.

Le gestionnaire ne suit que quatre éléments d’information: le nom de la feuille de calcul, le créateur, la date de la dernière modification et le nom d’utilisateur de l’auteur de la modification. (La propriété Creator indique une valeur numérique liée au programme qui a créé la feuille de calcul. Ce n’est pas très utile pour les humains, et je l’ai incluse comme exemple illustratif de la façon dont les informations peuvent être stockées.)

N’oubliez pas qu’il ne s’agit que d’une solution de contournement et que vous devez examiner attentivement le type d’informations que vous souhaitez suivre pour vos feuilles de calcul. Vous pouvez ensuite modifier le code pour refléter ce désir.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7542) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.