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 ».

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top