Lori souhaite que le côté droit du pied de page de sa feuille de calcul inclue la date à laquelle le classeur a été enregistré pour la dernière fois. Chaque fois qu’elle tente de créer une formule pour ce faire, Excel affiche un message d’erreur indiquant que «la chaîne est trop longue» et qu’elle doit supprimer certains caractères. Elle n’est pas sûre de comprendre pourquoi cela se produit ou comment elle peut obtenir la date qu’elle veut dans le pied de page.

Il n’y a pas de formule réelle qui puisse mettre la dernière date enregistrée dans un pied de page.

Excel n’a aucun moyen (contrairement à Word) d’y mettre cette information.

Il existe un moyen de le faire, mais la solution nécessite l’utilisation d’une macro. La raison en est que vous accédez aux informations système – des informations en dehors d’Excel lui-même – et que ces informations ne peuvent être récupérées qu’à l’aide d’un langage de programmation tel que VBA.

Une approche consiste à ajouter du code qui s’exécute chaque fois qu’un classeur est enregistré.

Le code mettrait à jour le pied de page souhaité avec la date actuelle:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _   Cancel As Boolean)



ActiveWorksheet.PageSetup.RightFooter = _       "Last Saved: " & Format(Date, "mmmm d, yyyy")

End Sub

Cette macro, qui doit être stockée dans l’objet ThisWorkbook pour le classeur que vous souhaitez affecter, met à jour le pied de page de la feuille de calcul actuellement active. Si vous souhaitez affecter toutes les feuilles de calcul d’un classeur, une petite modification de la macro s’impose:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _   Cancel As Boolean)

Dim sht As Worksheet

For Each sht In Sheets         sht.PageSetup.RightFooter = _           "Last Saved: " & Format(Date, "mmmm d, yyyy")

Next End Sub

Si aujourd’hui est le 12 décembre 2011, alors après avoir exécuté la macro (ce qui est fait automatiquement lors de l’enregistrement), les bons pieds de page seront tous définis sur «Dernier enregistrement: 12 décembre 2011».

Vous pouvez également vous fier à la date d’enregistrement du fichier stockée dans les propriétés intégrées d’Excel. La façon dont vous mettez cette date dans le pied de page est la suivante:

Sub RightFooterLastSaved()

ActiveSheet.PageSetup.RightFooter = _        ActiveWorkbook.BuiltinDocumentProperties(12)

End Sub

L’inconvénient de cette macro est que vous devez vous rappeler de l’exécuter périodiquement, ce n’est donc pas aussi automatique que les approches précédentes. Vous pouvez toutefois placer la ligne unique au cœur de la macro dans le gestionnaire d’événements Workbook_BeforePrint.

Il existe une autre approche que vous pouvez utiliser. Celui-ci consiste à demander à Windows la date et l’heure réelles d’enregistrement d’un fichier.

Private Sub Workbook_Open()

Dim sTemp As String     Dim sht As Worksheet

sTemp = FileDateTime(ActiveWorkbook.FullName)

sTemp = "Last Saved: " & sTemp     For Each sht In Sheets         sht.PageSetup.RightFooter = sTemp     Next sht End Sub

Cette macro est conçue pour s’exécuter chaque fois qu’un classeur est ouvert pour la première fois: elle est enregistrée en tant que procédure Workbook_Open de l’objet ThisWorkbook. Le cheval de bataille de la macro est la ligne qui appelle la fonction FileDateTime.

Cette fonction peut être utilisée pour déterminer la date et l’heure de l’enregistrement d’un fichier. Il nécessite un nom de chemin complet d’un fichier, qui est fourni par la propriété FullName de l’objet ActiveWorkbook. Cette date et heure est ensuite placée dans le pied de page droit de toutes les feuilles de calcul du classeur.

N’oubliez pas également que la limite de ce que vous pouvez placer dans chaque section de l’en-tête ou du pied de page est d’environ 250 caractères. Donc, si vous ajustez les macros pour ajouter plus d’informations à la partie droite du pied de page, assurez-vous que cela ne compte pas autant de caractères, sinon vous pourriez avoir des problèmes avec la macro.

_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 (2190) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Last_Saved_Date_in_a_Footer [Dernière date enregistrée dans un pied de page].