Ouvrir un classeur avec une partie du nom avec VBA

Bonjour,

Avec VBA, je cherche à ouvrir un classeur dans mes téléchargements (C:\Users\NOM UTILISATEUR\Downloads\commandes__20231019.xlsx) dont le nom commence toujours par « commandes_ », complété par une date, et je voudrais sélectionner le plus récent parmi une liste. (ex nom des classeurs : commandes__20231020, commandes_20231019, commandes_20231018.....).

Avec le code ci dessous , le message d’erreur s’affiche : « Erreur d’exécution 1004 : Désolé , nous ne trouvons pas …. , peut-être , l’avez-vous renommé , déplacé ou supprimé ? »

« Sub ouvre()

Workbooks.Open "C:\Users\NOM UTILISATEUR\Downloads\commandes__*.xlsx"

End Sub »

Est-il possible de corriger ce code pour que le fichier le plus récent s’ouvre ?

bonjour,

une proposition (sur base de la date dans le nom de fichier et non sur base de la date de modification la plus récente)

Sub ouvrirfichieleplusrecent()
    'ouvre le fichier le plus récent sur base d'un nom générique "commandes__aaaammjj.xls?"
    rep = "d:\downloads\test\" ' <- à adapter
    dateplusrecente = "19000101"
    fichier = Dir(rep & "commandes__*.xls*")
    Do Until fichier = ""
        datefichier = Mid(fichier, InStr(fichier, ".xls") - 8, 8)
        If datefichier > dateplusrecente Then dateplusrecente = datefichier: fichierplusrecent = fichier
        fichier = Dir()
    Loop
    Workbooks.Open rep & fichierplusrecent
End Sub

Bonsoir,

Merci beaucoup pour votre proposition. Oui c'était exactement sur la base de la date dans le nom de fichier

Et du coup, la macro s’exécute parfaitement bien sur les classeurs de type commandes__aaaammjj.xls" et idem quand je la transpose sur des fichiers dont le nom est légèrement différent mais avec la même racine "commandes__aaaammjj.xls". Je valide totalement votre proposition.

Rechercher des sujets similaires à "ouvrir classeur partie nom vba"