Quel fonction doit-on utiliser pour obtenir la date de dernière modification d'un fichier ?
Quel fonction doit-on utiliser pour obtenir la date de dernière modification d'un fichier ?
Avec la fonction FileDateTime (F1)
Merci mais cette fonction ne retourne pas la bonne date si elle est appliquée sur le fichier dans lequel je travaille. Elle retourne toujours la date du jour (Aujourd'hui) même si je n'ai ni modifié ni encore enregistré mon fichier.
Plusieurs remarques et/ou quiestions :
- quel est ton outil de développement (VB6 ou VBA) ?
- si le fichier à examiner n'est pas un fichier de MsOffice (Excel, Word, etc...) :
---->> utiliser FileDateTime avant d'ouvrir le fichier pour y travailler
- si le fichier est du type Excel (Microsoft Office) :
---->> là, il va te falloir gérer autrement et utiliser des instructions de sorte à garder en mémoire (dans une cellule, dans la base de registre ou dans un fichier texte) la date du jour si (et seulement si) tu apportes une modification au fichier. Mais là, il me semble que tu as déjà posé ta question et obtenu ta répoinse dans la section VBA/EXCEL ....... non ?
Après .... la manière de déterminer s'il y a ou non eu modification (au moment de la fermeture du fichier) est une affaire de goût personnel et le mien ne correspond pas à la réponse obtenue dans ton autre discussion... mais nious sommes ici sous VB6 et non VBA ...
Tu as raison, j'ai déjà posé la question dans la section VBA Excel. Mais comme je voulais savoir s'il y avait une autre fonction du genre "GetAttribute", j'ai tenté ma chance ici.
Il s'agit en fait d'une application en VBA Excel qui n'utilise Excel que pour imprimer des rapports. Aucune donnée n'est conservée dans le classeur; seulement le code. Et comme je suis en cours de développement, je veux faire afficher dans le Userform de départ, la date de la dernière modification.
Je ne veux pas conserver cette date dans une feuille ni dans un fichier texte c'est pourquoi je posais cette question.
Merci pour ton aide.
Aucune donnée dans le classeur ...
Je ne comprends alors pas ce que tu appelles "modification" ...
A moins qu'il ne s'agisse de la modification de ton projet lui-même (version du projet ?)
Voilà! Exactement.
Je veux pouvoir suivre les versions du programme et afficher la date du fichier pour être certain de toujours travailler sur la plus récente version.
Ben...
Deux solutions :
- donner (sous Excel) des numéros de version à ton projet (je n'ai pas excel sous la main pour vérifier si on le peut facilement)
- travailler "en miroir" (ce qui veut dire : utiliser un petit utilitaire, qui peut-être évrit sous VBA, pour :
1) copier ton classeur
2) lancer la copie et non l'original (ainsi, le classeur original ne sera même pas ouvert par les utilisateurs.... et FileDateTime, utilisé depuis ton petit utilitaire, te retournera forcément la dernière date à laquelle tu as ouvert ton projet !)
Salut ucfoutu,
Je crois avoir trouvé une solution et c'est toi qui m'as mis la puce à l'oreille.
Voici:
Puis dans la première Userform qui s'ouvre au lancement du programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Application.VBE.ActiveVBProject.Saved Then Application.VBE.ActiveVBProject.Description = Format(Date, "d mmmm yyyy") End If End Sub
De cette façon, si le programme n'est pas modifié, la date inscrite dans la description du projet ne sera pas modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub UserForm_Activate() LabelDateVersion = "Version du " & Application.VBE.ActiveVBProject.Description End Sub
J'ai hâte de pouvoir vérifier ceci demain
Merci
Voilà, ça ne fonctionne pas car le code n'arrive pas à lire la description dans les propriétés du projet à moins d'arrêter l'exécutiuon et de la redémarrer.
Mais... j'ai adopté une autre stratégie qui elle, fonctionne... je viens tout juste de la vérifier. J'ai dû mettre de côté mon orgueil et utiliser un fichier texte qui stocke la date du jour si le classeur est modifié et enregistré. Comme ça, à l'ouverture, je n'ai qu'à lire cette date et l'afficher. Celle-ci ne sera sauvée que si le classeur subit une modification et qu'il est par la suite enregistré.
Merci de ton temps et ton l'intérêt.
Voilà une sage décision.
Tu pourrais également utiliser, plutôt qu'un fichier texte, la fonction Savesetting (pour écrire) et la fonction Getsetting (pour lire). Par cette méthode, la date serait gardée en mémoire dans la base de registre (ce qui est plus sécuritaire).
Bonne chance.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager