Bonjour,

Une petite fonction bien pratique qui permet de retourner le dernier fichier présent dans un dossier cible :

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
Public Function FindLastFileFromFolder(ByRef FileName As String, ByVal PathName As String, Optional ByVal FileStartingBy As String, Optional ByVal MinCreationDate As Date = #1/1/1900#) As Boolean
'---------------------------------------------------------------------------
' Procedure     : FindLastFileFromFolder
' DateTime      : 27/05/2008
' Author        : Argyronet
' Purpose       : Permet de retourner le nom du dernier fichier créé dans un dossier
'                 [selon le début de son nom] et [selon une date de création spécifiée]
'...........................................................................
' Parameters    : FileName = Nom du fichier trouvé
'               : PathName = Chemin à scruter
'                 FileStartingBy = Occurence de comparaison
' Return Codes  : Aucun
'......................................................................
' Evolutions    :
'-------------------------------------------------------------------------------------------------------------------
Dim oFSO                                                    As Scripting.FileSystemObject
Dim oFolder                                                 As Scripting.Folder
Dim oFile                                                   As Scripting.File
Dim oLastCreatedFile                                        As Scripting.File
Dim dtmLastCreationDate                                     As Date
 
 
''''    On Error GoTo FindLastFileFromFolder_Error
 
    Set oFSO = New Scripting.FileSystemObject
    Set oFolder = oFSO.GetFolder(PathName)
    dtmLastCreationDate = MinCreationDate
    For Each oFile In oFolder.Files
 
        If IsMissing(FileStartingBy) = False Then
            If oFile.DateCreated > dtmLastCreationDate Then
                If Left$(oFile.Name, Len(FileStartingBy)) = FileStartingBy Then
                    Set oLastCreatedFile = oFile
                    dtmLastCreationDate = oFile.DateCreated
                End If
            End If
        Else
            If oFile.DateCreated > dtmLastCreationDate Then
                Set oLastCreatedFile = oFile
                dtmLastCreationDate = oFile.DateCreated
            End If
        End If
    Next
    If Not (oLastCreatedFile Is Nothing) Then
        FindLastFileFromFolder = True
        FileName = IIf(Right$(PathName, 1) = "\", PathName & oLastCreatedFile.Name, PathName & "\" & oLastCreatedFile.Name)
    Else
        Err.Raise 53, "FindLastFileFromFolder()", "Aucun fichier n'a pu être localiser dans le dossier" & vbCrLf & PathName
    End If
 
''''FindLastFileFromFolder_Exit:
    Set oLastCreatedFile = Nothing
    Set oFile = Nothing
    Set oFolder = Nothing
    Set oFSO = Nothing
''''    Exit Function
 
''''FindLastFileFromFolder_Error:
''''    FindLastFileFromFolder = False
''''    FileName = vbNullString
''''    Resume FindLastFileFromFolder_Exit
End Function
Usage :
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 Test()
Dim strLastFileName                                         As String
 
    On Error GoTo Test_Error
 
    If FindLastFileFromFolder(strLastFileName, "C:\_Test") Then
        MsgBox "Le dernier fichier est le suivant :" & vbCrLf & strLastFileName
    Else
        Err.Raise Err.Number
    End If
 
    On Error GoTo 0
Test_Exit:
    Exit Sub
Test_Error:
    MsgBox Err.Description, 48, Err.Number
    Resume Test_Exit
End Sub
Argy