Ouvrir le dernier fichier enregistré dans un dossier

Bonjour,

J’aurais besoin de votre aide pour une tâche que j’ai à réaliser pour mon entreprise car je bloque au niveau de mes connaissances en VBA qui sont limitées.

Voici comment se présente mon fichier actuellement :

En exécutant la macro, une fenêtre s’ouvre me permettant de choisir le fichier dont je veux extraire les valeurs.

Ce que je voudrais faire :

A la place de cela (saisie du fichier manuelle), je voudrais que quand la macro s’exécute, elle aille chercher le dernier fichier « .txt » enregistré dans mon dossier afin d’en extraire les valeurs (renseignées dans la suite de la macro).

Si la macro est de nouveau exécutée et qu’aucun nouveau fichier n’a été enregistré entre temps, les valeurs déjà extraites de ce fichier ne doivent pas être extraites de nouveau.

Merci d’avance pour votre aide !!!

Bonjour,

Utilise la fonction FileDateTime

Syntaxe

i = FileDateTime(pathname)

L’argument obligatoire pathname est une expression de chaîne qui spécifie un nom de fichier

Sub test()
MsgBox FileDateTime("sons.xlsm")
End Sub

renvoie la date et l'heure dans le format de ton système d'exploitation p.e. :

27/02/2015 22:31:54

A+

Merci à toi je viens de résoudre mon problème!!!

Bonjour le fil, bonjour le forum,

Essaie comme ça (avec l'aide de Galopin pour la date) :

Sub Macro1()
Dim SF As Object 'déclare la variable SF (Systeme de Fichiers)
Dim D As Object 'déclare la variable D (Dossiers)
Dim EF As Object 'déclare la variable EF (Ensemble de Fichiers)
Dim F As Object 'déclare la variable F (Fichiers)
Dim DM As Date 'déclare la variable DM (Date max)
Dim NF As String 'déclare la variable NF (Nom du Fichier)

Set SF = CreateObject("Scripting.FileSystemObject") 'définit le système de fichiers SF
Set D = SF.GetFolder("V:\08 - Bd$\02 - SX\D109\PVC\00000001") 'définit le dossier de travail D dans le système de fichiers SF
Set EF = D.Files 'définit l'ensemble des fichier FS du dossier D
For Each F In EF 'boucle sur tous les fichiers F de EF
    If UCase(Right(F.Name, 4)) = ".TXT" Then 'condition 1 : si le fichier à l'extention ".txt" sans tenir compte de la casse
        If FileDateTime(F) > DM Then 'condition 2 : si la date du fichier est supérieure à la dte max DM
            DM = FileDateTime(F) 'DM devient la date du fichier
            NF = F.Name 'NF devient le nom du fichier
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next F 'prochain fichier de la boucle

Open NF For Input As #1

'la suite de ton code

End Sub
Rechercher des sujets similaires à "ouvrir dernier fichier enregistre dossier"