cellule avec (la vraie...) date de création de fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

davqual

XLDnaute Nouveau
Bonjour à tous,

mon but est d'avoir dans une cellule la date de création du fichier.

Après de multiples recherches, j'utilise pour l'instant :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Feuil1")
Range("H2") = CDate(Format(ActiveWorkbook.BuiltinDocumentProperties("creation date"), "dd/mm/yy"))
.Range("H4") = Now()
End With
End Sub

qui me donne effectivement dans la cellule H2 la date de création, mais mon problème est le suivant :
ce code est inséré dans un modèle excel, et quand les utilisateurs créent un document à partir de ce modèle, la cellule, dans ce nouveau document, renvoie toujours la date de création du modèle, et non celui du nouveau document qu'ils viennent de créer...
Pourtant dans les propriétés de fichier windows du nouveau document, c'est bien la nouvelle date qui apparait.

Quelqu'un saurait-il comment résoudre ce problème ?...
D'avance merci à tous.............
NB : j'ai essayé d'être le plus clair possible mais n'hésitez pas à me demander des informations complémentaires si besoin !
 
Dernière édition:
Re : cellule avec (la vraie...) date de création de fichier

Bonjour davqual,
Juste une idée en attendant mieux....
On peut, peut être, partir du principe que la date de création est la date de l'enregistrement du document créé.
Avec ceci dans le Thisworkbook :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets("Feuil1").Range("H2")
    If .Value = "" Then .Value = CDate(Format(Date, "dd/mm/yy"))
End With
End Sub
Cordialement
 
Re : cellule avec (la vraie...) date de création de fichier

Bonjour davqual,
Juste une idée en attendant mieux....
On peut, peut être, partir du principe que la date de création est la date de l'enregistrement du document créé.
Avec ceci dans le Thisworkbook :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets("Feuil1").Range("H2")
    If .Value = "" Then .Value = CDate(Format(Date, "dd/mm/yy"))
End With
End Sub
Cordialement

MERCI pour ta réponse !
question complémentaire : est-ce que du coup la date va changer à chaque nouvel enregistrement ? (ce qui ne m'arrangerait pas)
Cordialement !
 
Re : cellule avec (la vraie...) date de création de fichier

Re
La date ne sera inscrite que si la cellule est vide, donc au premier enregistrement.
Pour "assurer le coup" il conviendra de protéger la cellule pour éviter qu'un utilisateur ne supprime cette date (en déprotégent les cellules qui doivent restyées libres).
Pour prendre en compte ce problème on peut utiliser ceci:
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets("Feuil1")
    If .Range("H2").Value = "" Then
        .Unprotect
        .Range("H2").Value = CDate(Format(Date, "dd/mm/yy"))
        .Protect
    End If
End With
End Sub
Cordialement
 
Re : cellule avec (la vraie...) date de création de fichier

Re
La date ne sera inscrite que si la cellule est vide, donc au premier enregistrement.
Pour "assurer le coup" il conviendra de protéger la cellule pour éviter qu'un utilisateur ne supprime cette date (en déprotégent les cellules qui doivent restyées libres).
Pour prendre en compte ce problème on peut utiliser ceci:
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets("Feuil1")
    If .Range("H2").Value = "" Then
        .Unprotect
        .Range("H2").Value = CDate(Format(Date, "dd/mm/yy"))
        .Protect
    End If
End With
End Sub
Cordialement

Merci ! effectivement si la date ne vient s'inscrire que si la cellule est vide, cela devrait fonctionner car alors c'est la date du 1er enregistrement qui resterait affichée !
Par contre que faut-il ajouter si l'on veut également l'heure en plus ?
Merci encore...
 
Re : cellule avec (la vraie...) date de création de fichier

Bonjour davqual, Bonjour Efgé,

Peut-être

Code:
.Range("H2").Value = Now

Edit : Pour info, tu peux récupérer la date de création d'un fichier avec un code du type là (mais ça ne peut pas fonctionner si tu ne l'as pas encore enregistré !)

Code:
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile("C:\Classeur1.xls")
MsgBox f.DateCreated
Set f = Nothing
Set fs = Nothing
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour