Import du document le plus récent

Résolu
Bonjour,

Je travaille actuellement sur une macro Excel, et j'aimerai savoir s'il existe un moyen de sélectionner le classeur Excel le plus récent d'un dossier.

Habituellement j'utilise cette fonction
Set classeurSource = Application.Workbooks.Open("K:\Outils\Reporting trimestriel\Fichier import\Plop.xlsx", , True)
Set classeurDestination = ThisWorkbook
classeurSource.Sheets("Feuil1").Cells.Copy classeurDestination.Sheets("Libre arbitre").Range("A1")
classeurSource.Close False

Mais dans mon cas, cela n'est pas possible car mon dossier va accueillir de nouveau classeurs, et à chaque actualisation du dossier, j'aurai besoin de sélectionner le classeur le plus récent.

Merci

1 réponse

  1. Contributeur
    bonjour

    Pour obtenir ton classeur source le plus récent tu peux essayer ceci :

    Public Sub ouvre_dernier()
    Dim fsys As Object
    Dim felm As Object
    Dim fdat As Date
    Dim fdir As String
    Dim fich As String
    Dim fsel As String
        fdir = "K:\Outils\Reporting trimestriel\Fichier import\"   ' répertoire de recherche
        Set fsys = CreateObject("Scripting.FileSystemObject")
        fich = Dir(fdir & "*.xlsx")
        While fich <> ""
            Set felm = fsys.GetFile(fdir & fich)
            If felm.DateLastModified > fdat Then
                fdat = felm.DateLastModified
                fsel = fdir & fich
            End If
            fich = Dir
        Wend
    Dim classeurSource As Object
    Set classeurSource = Application.Workbooks.Open(fsel, , True)
    End Sub

    Puis continuer avec ton code à toi.
    1. Merci beaucoup pour ta réponse aussi rapide.
      Je vais essayer ton code, je te tiens au courant.
    2. Ton code fonctionne parfaitement, encore merci, j'avais déjà utilisé de tes codes que j'avais vus sur d'autres topics, ils sont toujours très clairs et marchent sans problème.
    3. Contributeur
      Merci beaucoup pour le retour et je suis ravi que tu ais résolu ta question.