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

Macros et VBA Excel Discussion :

Obtenir la date de dernière modification de l'actuel classeur


Sujet :

Macros et VBA Excel

  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 Obtenir la date de dernière modification de l'actuel classeur
    Bonjour à tous,

    J'utilise actuellement la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileDateTime(ThisWorkbook.Path & "\" & ThisWorkbook.Name)
    pour obtenir la date de dernière modification de mon fichier Excel mais la fonction me retourne toujours la date du jour (Aujourd'hui) alors que je n'ai pas encore modifié ni sauvegardé mon classeur.

    La fonction donne pourtant la bonne information si je l'applique sur un autre fichier que lui-même...

    Y a-t-il un façon de palier à cet inconvénient ?

    Merci de votre aide.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Points : 225
    Points
    225
    Par défaut
    Hello,

    Tu peux essayer ceci.

    Dans le ThisWorkBook pour qu'à la fermeture, il affiche l'espion. (Ferme le classeur, tu verras !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Dim modifs As Boolean
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
        If modifs = True Then
            Sheets("Feuil1").Range("A2").Value = "Dernière modification effectuée par : " & Application.UserName & " le " & Format(Date, "dd.mm.yyyy") _
            & " à" & Format(Time, " hh:mm:ss")
        End If
     
    End Sub
     
    Private Sub Workbook_Open()
     
        Sheets("Feuil1").Range("A1").ClearContents
     
    End Sub
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
        modifs = True
     
    End Sub
    et celui-là dans une feuille quelquonque (ici Feuil1) pour qu'il affiche l'espion en live.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim modifs As Boolean
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If modifs = True Then
     
            Sheets("Feuil1").Range("A1").Value = "Dernière modification effectuée aujourd'hui par : " & Application.UserName & " à " & Format(Time, "hh:mm:ss")
     
        End If
     
        modifs = True
     
    End Sub
    Cdt, mOOm.
    Cdt, Antonio.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    j'ai également tester avec FileSystemObject mais le résultat est identique, en fait c'est normal puisqu'il est déja ouvert quand l'événement Open est appeler.
    Peut-être une solution avec un "Classeur tampon" qui se chargerait d'afficher les données demandées, éventuellement saisirait un mot de passe et ensuite ouvrirait le classeur en question...
    Dans Tampon.xls...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Workbook_Open()
    Dim Fichier As String
    Fichier = "LeCheminEtNomCompletDuFichierCible.xls"
        Dim fs, D, F, G, S
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFile(Fichier)
        S = "Le nom du fichier est : " & F.Name & vbCrLf
        S = S & UCase(F.Path) & vbCrLf
        S = S & "Créé le : " & F.DateCreated & vbCrLf
        S = S & "Dernier accès le : " & F.DateLastAccessed & vbCrLf
        S = S & "Dernière modification le : " & F.DateLastModified
        MsgBox S, 0, "Infos d'accès au fichier : " & F.Name
        'Eventuellement saisir mot de passe
        '....
     
        Workbooks.Open Fichier
        Workbooks("Tampon.xls).Close
    End Sub
    Tu peu te servir uniquement de la ligne de code que tu met dans ton premier poste.
    A+

Discussions similaires

  1. Comment obtenir la date de dernière modification d'un fichier
    Par Archampi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 30/04/2009, 20h37
  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