IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Comment obtenir la date de dernière modification d'un fichier


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut Comment 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 ?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Avec la fonction FileDateTime (F1)

  3. #3
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    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.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    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 ...

  5. #5
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    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.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    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 ?)

  7. #7
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    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.

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    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 !)

  9. #9
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Salut ucfoutu,

    Je crois avoir trouvé une solution et c'est toi qui m'as mis la puce à l'oreille.

    Voici:

    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
    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
    Private Sub UserForm_Activate()
     
    LabelDateVersion = "Version du " & Application.VBE.ActiveVBProject.Description
     
    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.

    J'ai hâte de pouvoir vérifier ceci demain

    Merci

  10. #10
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut Ma solution ne marche pas mais...
    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.

  11. #11
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    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.

Discussions similaires

  1. [XL-2003] Obtenir la date de dernière modification de l'actuel classeur
    Par Archampi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2009, 13h45
  2. Réponses: 2
    Dernier message: 15/10/2008, 10h02
  3. Réponses: 2
    Dernier message: 17/12/2005, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo