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 :

rechercher le fichier le plus récent


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut rechercher le fichier le plus récent
    Bonjour,

    Je souhaiterai faire un programme qui cherche le document Excel le plus récemment créé dans un répertoire. Par ailleur, il faudrait que le nom de ce fichier soit stocké dans une variable.

    J'ai trouver ce code que j'ai modifier pour trouver la date de creation d'un fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFile("C:\...\doc.xls")
        p = f.DateCreated
        MsgBox ("date creation : " & p)
    End Sub
    J'aimerai faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set fs = CreateObject("Scripting.FileSystemObject")
    fichier_recent = 01/01/1995
    For Each ..?..
        ..
        fichier_courant = f.DateCreated
        If fichier_courant > fichier_recent Then
            fichier_recent = fichier_courant
        End If
    Next
    ...
    Msgbox(fichier_recent)
    Je ne sais pas comment concrétiser mes idées. Est-ce que quelqu'un pourrait m'aider svp ?
    Merci d'avance

  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
    Par défaut
    Bonjour

    en ennemi de FSO, je te proposerais d'utiliser directement ce que t'offre VB !

    Exemple (ici des fichiers .txt dans le répertoire "d:\"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command1_Click()
      Dim monrep As String, monfic As String, derdate As Date, ledernier As String
      monrep = "d:\"
      monfic = Dir(monrep & "*.txt")
      derdate = DateSerial(1, 1, 1)
      Do While monfic <> ""
        If FileDateTime(monrep & monfic) > derdate Then
          ledernier = monrep & monfic
          derdate = FileDateTime(monrep & monfic)
        End If
        monfic = Dir
      Loop
      MsgBox "le plus récent des fichiers txt dans ce répertoire est " & ledernier
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Merci de ta réponse, je viens de testé et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "le plus récent des fichiers txt dans ce répertoire est " & ledernier
    ne renvoie rien, enfin je vois la phrase affiché mais la variable "ledernier" n'apparait pas.
    J'ai donc essayé d'afficher la variable "monfic" avec un Msgbox mais ça n'affiche rien non plus..

    Edit -> En fait, je n'arrive pas à rentré dans ma boucle "Do While", c'est pour ça.
    Il faudrait remplacer ça par autre chose :

  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
    Par défaut
    Cela veut dire :
    soit que ton répertoire n'existe pas
    soit que tu n'y a aucun fichier de l'extension choisie
    soit que tu a mal adapté ton code

    J'ai testé et retesté ! tout marche à la perfection !

    Montre-nous ton code, donc (tel qu'il est) !

    Autre chose : tes fichiers seraient-ils dotés d'attributs ? (si oui : lesquels ?)

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Mon répertoire et mes fichiers existent bien.

    Mon code :
    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
    Private Sub CommandButton1_Click()
      Dim monrep As String, monfic As String, derdate As Date, ledernier As String
      monrep = "C:\Documents"
      monfic = Dir(monrep & "*.xls")
      derdate = DateSerial(1, 1, 1)
      Do While monfic <> ""
        If FileDateTime(monrep & monfic) > derdate Then
          ledernier = monrep & monfic
          derdate = FileDateTime(monrep & monfic)
        End If
        monfic = Dir
      Loop
      MsgBox "le plus récent des fichiers txt dans ce répertoire est " & ledernier
     
    End Sub
    Autre chose : tes fichiers seraient-ils dotés d'attributs ? (si oui : lesquels ?)
    Je ne comprends pas ce que tu veux dire par la

  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
    Par défaut
    Regarde ce que tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monrep = "C:\Documents"
    !!!!!ù

    Il ne te semble pas qu'il manque un "petit détail" ? (un slash final, par exemple) ? (relis mon code !)

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Oupsss
    Effectivement, de suite ça marche beaucoup mieux.. mdr

    Ca marche impec !!! Merci beaucoup !
    Juste ça se base sur la date de dernier modification, c'est ça ?

  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
    Par défaut
    Oui : la date de création ou celle de dernière modification
    C'est cette date qui est en général utile.

    Si tu tiens à la seule date de création, on peut faire aussi, avec la fonction GetFileInformationByHandle de l'API de Windows ... Mais : en es-tu vraiment certain ?

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Non non t'inquiètes ça me va très bien. Merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. routine DOS pour sélectionnée le fichier le plus récent
    Par sofiane1111 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 21/09/2007, 10h56
  2. récupérer le fichier le plus récent
    Par kifouillou dans le forum Langage
    Réponses: 24
    Dernier message: 26/01/2007, 00h04
  3. Fichiers le plus récent en BATCH
    Par nolan76 dans le forum Windows
    Réponses: 5
    Dernier message: 03/08/2006, 14h25
  4. Rechercher la date la plus récente dans une BD
    Par kurkaine dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2006, 19h10
  5. Réponses: 2
    Dernier message: 12/03/2006, 23h41

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