Ouvrir le fichier le plus récent dans un dossier

Bonsoir,

J'aimerais ouvrir le fichier le plus récent dans un dossier qui ne contient que des documents "*.txt". J'ai trouvé un code qui me permet de le faire mais pour un fichier de type excel. J'ai cherché, sans succès pour l'instant la commande équivalente pour un fichier txt, pouvez-vous m'aider? Voici le code:

Sub GetMostRecentFile()

    Dim FileSys As FileSystemObject
    Dim objFile As File
    Dim myFolder
    Dim strFilename As String
    Dim dteFile As Date

    'set path for files - change for your folder
    Const myDir As String = "C:\test"

    'set up filesys objects
    Set FileSys = New FileSystemObject
    Set myFolder = FileSys.GetFolder(myDir)

    'loop through each file and get date last modified. If largest date then store Filename
    dteFile = DateSerial(1900, 1, 1)
    For Each objFile In myFolder.Files
        If objFile.DateLastModified > dteFile Then
            dteFile = objFile.DateLastModified
            strFilename = objFile.Name
        End If
    Next objFile
[Inline]    'Workbooks.Open strFilename[/Inline]

    Set FileSys = Nothing
    Set myFolder = Nothing
End Sub

Merci et bon dimanche.

Bonjour,

si vous ajoutiez une condition de "prise en charge" du fichier le plus récent pour que celui-ci ne test que les fichiers .txt :

If objFile.DateLastModified > dteFile and Right(objFile.Name, 4) = ".txt" Then

alors seul le fichier txt le plus récent sera mis en mémoire dans le code et il suffit de demander l'ouverture à l'issue de la boucle...

@ bientôt

LouReeD

Bonjour,

très bien je vais essayer merci. Par contre pouvez-vous me dire quelle est la commande pour demander l'ouverture du fichier?

Bonsoir,

un essai de code :

Sub GetMostRecentFile()

    Dim FileSys As FileSystemObject
    Dim objFile As File
    Dim myFolder
    Dim strFilename As String
    Dim dteFile As Date

    'set path for files - change for your folder
    Const myDir As String = "C:\test"

    'set up filesys objects
    Set FileSys = New FileSystemObject
    Set myFolder = FileSys.GetFolder(myDir)

    'loop through each file and get date last modified. If largest date then store Filename
    dteFile = DateSerial(1900, 1, 1)
    For Each objFile In myFolder.Files
        If objFile.DateLastModified > dteFile and Right(objFile.Name, 4) = ".txt" Then
            dteFile = objFile.DateLastModified
            strFilename = objFile.Name
        End If
    Next objFile
[Inline]    'Workbooks.Open strFilename[/Inline]
    Shell "C:\windows\Notepad.exe " & strFilename, vbNormalFocus              
    Set FileSys = Nothing
    Set myFolder = Nothing
End Sub

Instruction Shell avec le Notepad pour ouvrir le fichier txt. A modifier si vous voulez l'ouvrir avec autre chose...

@ bientôt

LouReeD

Bonjour Loureed,

Navré de ma réponse tardive, n'ayant pas eu accès à un ordinateur ces 15 derniers jours, je n'avais pas pu tester votre solution.

Merci beaucoup pour votre aide.

La macro détecte bien le dernier fichier mais lorsqu'il l'ouvre: je reçois l'erreur suivante:

"Cannot find the 2018-01-30_09-53-26_log_gen.txt file

Do you want to create a new file"?

Chose étrange car le fichier existe bien et qu'il est plein de données.

Savez-vous de quoi cela peut provenir?

Merci,

Bonjour,

C'est réglé. Au lieu de l'ouvrir, j'ai fais "read" dans le fichier et fais un search de la valeur qui m'intéressait et cela fonctionne.

Merci Loureed pour votre aide.

Bonsoir,

merci @ vous pour vos remerciements !

Et ravis que cela fonctionne ! Je ne suis pas expert en gestion de fichiers "externes" à Excel, mais en surfant sur le net et en analysant les différentes réponses, il m'arrive parfois de "taper dans le 1000" !

@ bientôt

LouReeD

Rechercher des sujets similaires à "ouvrir fichier recent dossier"