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 :

Ouvrir dernier fichier modifié d'un dossier [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Ouvrir dernier fichier modifié d'un dossier
    Bonjour à tous,

    Comme dit dans le titre je souhaite ouvrir le dernier fichier .csv modifié d'un dossier.
    Malheureusement, le code que j'utilise ci-dessous fonctionne mais n'ouvre pas le dernier fichier modifié et je dois avouer que je ne sais pas où se trouve mon erreur.

    Un avis extérieur pourrait-il m'aider sur ce point svp ?

    Je vous remercie d'avance !

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Option Explicit
     
    Sub LastFile()
     
    Dim LinkCMTO As String
    Dim AdresseCMTO As String
    Dim Wbk1 As Workbook
    Dim fso As Object
    Dim f As Object
    Dim file As Object
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    LinkCMTO = "C:\Mesdocs\"
     
    For Each f In fso.GetFolder(LinkCMTO).Files
        If LCase(Right(f.Name, 4)) = ".csv" Then
          If file Is Nothing Then
            Set file = f
          Else
            If f.Datecreated > file.Datecreated Then Set file = f
          End If
        End If
      Next
      If Not file Is Nothing Then
        AdresseCMTO = file.Path
      End If
    Set Wbk1 = Workbooks.Open(AdresseCMTO)
    Set fso = nothing
    Set file = nothing
     
    End sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Je n'utilise jamais le FileSystemObject... mais je pense que ce bout de code retourne le chemin, mais pas le nom du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      If Not file Is Nothing Then
        AdresseCMTO = file.Path
      End If
    Est-ce possible ?
    MPi²

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    C'est possible, ça retourne le chemin et le nom du fichier.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Essaie comme ceci pour voir

    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
    23
    Sub DernierFichier()
        Dim Chemin As String, Fichier As String, FichierTemp As String
     
        Chemin = "C:\Mesdocs\"
     
        Fichier = Dir(Chemin, vbArchive)
        Do While Left(Fichier, 1) <> "." And Fichier <> ""
     
            If Right(LCase(Fichier), 3) = "csv" Then
                If FichierTemp <> "" Then
                    If FileDateTime(Chemin & Fichier) > FileDateTime(Chemin & FichierTemp) Then
                        FichierTemp = Fichier
                    End If
                Else
                    FichierTemp = Fichier
                End If
            End If
            Fichier = Dir
        Loop
     
        MsgBox FichierTemp
     
    End Sub
    MPi²

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je n'ai pas la documentation de fso sous la main; mais au lieu d'utiliser datecreated, regarde, s'il n'y aurait pas datelastmodified ou datelastsaved. En principe, ce sont des indicateurs plus fiables que datecreated, dès que le fichier a été moindrement utilisé après la date de création.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Datelastmodified semble fonctionner à merveille !

    En revanche parmi, la macro que tu m'as donné ne s'arrête jamais...

    Merci à vous deux !

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Ça fonctionne pourtant très bien ici...
    L'as-tu copiée telle quelle ?
    MPi²

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je l'ai copié/collé telle quelle en adaptant à ma macro... C'est bizarre !

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

Discussions similaires

  1. Ouvrir dernier fichier enregistré dans un dossier
    Par adragon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2014, 10h38
  2. Ouvrir automatiquement le dernier fichier créé dans un dossier
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 06/06/2011, 17h45
  3. Comment Ouvrir les fichier provenant d'un dossier?
    Par totonin dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 22/04/2009, 19h42
  4. Réponses: 0
    Dernier message: 02/12/2008, 17h07
  5. Ouvrir plusieurs fichier textes dans un dossier : *texte.txt
    Par Jenn74 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2007, 16h52

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