Propriétés des feuilles de calcul (Microsoft Excel)
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.