Date de création automatique dans une cellule...

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

Mise en situation, j'ai un formulaire créer en Excel, bien sûr, qui me sert de modèle et qui n'est qu'en lecture seule pour tous le monde sauf quelque personne qui ont accès pour la modification de ce formulaire. Ce formulaire sert à y entrer des donner quelconque, c'est en quelque sorte une requête achat. Ce que j'aimerais pouvoir y mettre de façon automatique, sans intervention de la part de l'usager, la date de création de ce nouveau fichier qui a été conçu à partir du formulaire. Car je ne veut pas que cette date modifiable, je veux que ce soit la date de la création auxquels les gens ont entrées les données.

Si vous avez besoin de précision ne vous gêné pas.

Le sujet a été traité mais je n'ai pas eu de nouvelle via l'autre discussion alors j'ai formulé une autre discussion dans l'espoir d'avoir une réponse....

Merci à l'avance


Neo ;)
 

CyberNeo99

XLDnaute Occasionnel
Re : Date de création automatique dans une cellule...

ReBonjour à tous,

J,ai trouvé un ocde pour ce qe je veux faire mais le seul Pb maintenant que j'ai est le suivant j'aimerais qu'une macro s'éxécute à l'ouverture du fichier.

mon code est le suivant :

Sub Date_creation()
Range("A1") = DateCreation
End Sub
Function DateCreation()
Application.Volatile
DateCreation = CDate(ActiveWorkbook.BuiltinDocumentProperties(11).Value)
End Function

Il me donne effectivement la date de cration du fichier mais il me faut exécuté de façon manuel la macro j'aimerais créer une macro du genre

À l'ouverture du Workbook

Call Date_creation

Et ainsi la macro Date_creation s'éxécuterait à chaque fois que le fichier s'ouvrirais.

Merci à l'avance

Neo :D
 

Pierrot93

XLDnaute Barbatruc
Re : Date de création automatique dans une cellule...

Bonjour Neo

essaye ceci, se déclenche à l'ouverture du classeur, à placer dans le module "thisworkbook" :

Code:
Private Sub Workbook_Open()
Call Date_creation
End Sub

il faut bien évidemment que l'utilisateur active les macros...

bonne soirée
@+
 

CyberNeo99

XLDnaute Occasionnel
Re : Date de création automatique dans une cellule...

Bonjour,

Merci pour le code.

J'ai un autre Pb vraiment bizarre. Le code que j'ai utilisé pour faire apparaître la date de création du fichier a fonctionné sur un fichier vierge mais lorsque j'ai utilisé mon formulaire je n'ai pas la date qui apparaît dans les propriétés du fichier avec le bouton-droit de la souris. Si par exemple j'ouvre mon formulaire en date d'aujourd'hui et que je le sauvegarde sous un aure non car il est en lecture seule pour les gens, et que j'ouvre à nouveau le fichier alors la macro devrait s'éxécuté automatiquement à l'ouverture et ainsi mettre la date de création, en fait de la sauvegarde que j'ai fait auparavant car la date de création et la date de la dernière sauvegarde sont égales dans ce cas car je venais tout juste de créer le fichier à partir de mon formulaire template. Ce n'est pas le cas c'est vraiment bizarre. Malheureusement je ne peux le mettre ne fichier mon formulaire car trop gros.

Est-ce que quelqu'un aurait une explication à ceci ???

Merci à l'avance

Neo :rolleyes:
 

Pierrot93

XLDnaute Barbatruc
Re : Date de création automatique dans une cellule...

Re,

pas tout compris, peut être utiliser la date du dernier enregistrement....

Code:
DateCreation = CDate(ActiveWorkbook.BuiltinDocumentProperties(12).Value)

et ce lors de la sauvegarde du classeur :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

@+
 

CyberNeo99

XLDnaute Occasionnel
Re : Date de création automatique dans une cellule...

Re,

En fait un formulaire a été créer à un certain moment. Il sert de template en fait, la structure est là et les gens peuvent y entrer en mode lecture seule car je ne veux pas qu'ils modifient ce fichier. Alors ils n'ont pas le choix de le sauvegarder sous un autre nom, ils y entrent des données car c'est un formulaire réquisition achat si je puis dire ils y mettent les items qu'ils ont besoins. Ce que je veux et bien lorsqu'ils ouvrent mon formulaire template est de voir apparaître la date de création de ce formulaire. À l'origine la date sera celle du formulaire et une fois sauvegarder sous un autre nom alors la date de création changera à la nouvelle ouverture de ce fichier car aisni la macro qui s'exécutera à l'ouverture de ce dernier verra que la date de création aura changer car originalement elle sera la date du formulaire template et maintenant puisque le fichier a été sauvegarder sous un autre nom et bien sa date de création changera et ainsi là où je veux que la date de création, dans la cellule que j'aurai choisi, la date de création apparaîtra. Car je ne veux pas que cette date change, je veux que ce soit vraiment la date de création quand elle sera la date de la date demande dans mon formulaire.

Ce que je n'arrive pas à comprendre est que j'ai utilisé le code avec la fonction qui va cherché la date de création mais le hic ce n'est pas la même date que celle des propriétés du fichier avec le bouton-droit de la souris et propriétés. Elle est très antérieur à la date de création des prorpiétés. Je me demande si ce n'est pas la toute première date de création du formulaire template.... Ce que je ne peux vérifié car je travaillais pas sur ce fichier à l'époque, en fait je ne travallais pas ici à ce moment là et je doute qu'une personne puisse répondre à cette question....

Je l'ai essayé sur un fichier vierge et la fonction est impécable.

Si quelqu'un peut m'éclairé cela serait grandement apprécié...

Merci à l'avance

Neo :eek:
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Date de création automatique dans une cellule...

Re,

une autre solution, te donnera bien la date de création du fichier et non de ton "template" :

Code:
Dim f As Object
Set f = CreateObject("Scripting.FileSystemObject").GetFile(ActiveWorkbook.FullName)
Range("A1").Value = f.DateCreated

bonne soirée
@+
 

CyberNeo99

XLDnaute Occasionnel
Re : Date de création automatique dans une cellule...

Re,

Dernière petite chose, avec ce code lorsque le fichier s'ouvrira il mettra la date dans la cellule spécifié dans la feuille active avec lequel le fichier s'ouvrira. Si l'on veut que la date soit dans une feuille en particulier car j'en ai plusieurs alors quel sera code ???

Merci encore à l'avance

Neo ;)
 

CyberNeo99

XLDnaute Occasionnel
Re : Date de création automatique dans une cellule...

Re,

Encore moi.

J'ai trouvé, je ne suis pas programmeur mais j'ai eu le flash d'essayé ça et ça fonctionne.

Voici le code d'orgine :

Dim f As Object
Set f = CreateObject("Scripting.FileSystemObject").GetFile(ActiveWorkbook.FullName)
Range("A1").Value = f.DateCreated

J'ai mis devant la dernière ligne

Sheets("Nom de la feuille").Range("A1").Value = f.DateCreated

Et ça fonctionne, je n'ai pas beaucoup de mérite c'est assez logique en bout de ligne. :p

J'ai rencontré un autre Pb d'autre de protection car je voulais vérouillé cette cellule et rien à faire la macro ne roule pas alors j'ai du mettre la date ailleur et la cellule où je veux la date lui que celle-ci est égale à la cellule où la macro va mettre la date de création. Fichu Excel parfois il faut vraiment faire des pirouettes :eek:

Neo :D
 

Pierrot93

XLDnaute Barbatruc
Re : Date de création automatique dans une cellule...

Bonjour,

si ta feuille est protégée, tu as 2 solutions, soit protéger / déprotéger ta feuille lors de l'exécution :

Code:
Sub test()
Dim f As Object
Set f = CreateObject("Scripting.FileSystemObject").GetFile(ActiveWorkbook.FullName)
With Sheets("NomFeuille")
    .Unprotect "toto"
    .Range("A1").Value = f.DateCreated
    .Protect "toto"
End With
End Sub

soit protéger la feuile par le code lors de l'ouverture du classeur en utilisant l'argument "userinterfaceonly", et ainsi tu pourras intervenir par le code sans problème :

Code:
Option Explicit
Private Sub Workbook_Open()
Sheets("NomFeuille").Protect "toto", userinterfaceonly:=True
End Sub

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 193
Messages
2 086 059
Membres
103 110
dernier inscrit
Privé