Insérer la date actuelle dans le modèle Excel lors de la création
Question
Je construis ici un modèle Excel (*.xlt) pour un utilisateur, et l'une des choses que je veux faire est de lui faire insérer la date actuelle lorsqu'un nouveau document est créé (c'est-à-dire lorsqu'il double-clique sur le fichier dans Windows Explorer).Comment puis-je faire cela?
Mise à jour: J'aurais dû ajouter que je préférerais ne pas utiliser de vba (macro).Si c'est la seule option, qu'il en soit ainsi, mais j'aimerais vraiment éviter de forcer mon utilisateur à se rappeler de cliquer sur un bouton « Autoriser le contenu de la macro ».
La solution
Vous pouvez utiliser la fonction de feuille de calcul =TODAY(), mais elle sera évidemment mise à jour à la date actuelle chaque fois que le classeur est recalculé.
La seule autre méthode à laquelle je peux penser est, comme l'a dit 1729, de coder l'événement Workbook_Open :
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date
End Sub
Vous pouvez réduire le problème de l'obligation pour l'utilisateur d'accepter les macros à chaque fois en signant numériquement le modèle (dans VBA IDE Tools | Digital Signature...) et en sélectionnant un certificat numérique. Cependant, vous devrez obtenir un certificat d'une certification commerciale. autorité (voir http://msdn.microsoft.com/en-us/library/ms995347.aspx).L'utilisateur devra choisir de toujours faire confiance à ce certificat la première fois qu'il exécute le modèle, mais par la suite, il ne sera plus invité à le faire.
Autres conseils
Vous pouvez modifier le modèle par défaut pour Excel -
Il existe un fichier appelé Book.xlt
dans le XLSTART
répertoire, normalement situé dans C:\Program Files\Microsoft Office\Office\XLStart\
Vous devriez pouvoir ajouter une macro appelée Workbook_Open
Private Sub Workbook_Open()
If ActiveWorkBook.Sheets(1).Range("A1") = "" Then
ActiveWorkBook.Sheets(1).Range("A1") = Now
End If
End Sub
Mon VBA est un peu rouillé, mais vous constaterez peut-être que quelque chose comme ça fonctionne.
Pour éviter VBA, et si vous pensez que vos utilisateurs pourraient suivre les instructions, vous pouvez leur demander de copier la date, puis de coller des valeurs spéciales-> pour définir la date afin qu'elle ne change pas à l'avenir.