VBA - Analyser les noms de fichier d'un dossier

Bonjour à tous,

Je souhaiterais parcourir le contenu d'un dossier obtenu par la méthode FileDialog, pour trouver et afficher via un MsgBox le nom du fichier contenant la chaîne de caractères située en B2 de la feuil1 du classeur ci-joint.

Lorsque l'adresse du dossier et le tronçon de caractères sont indiqués de la

manière suivante : 'Dossier = "D:\Dropbox\YGGD\13. MEDIATHEQUE\WORKING PROJECTS SPACE\MAPPING - parc GMS\v.2020 0715\*" & ThisWorkbook.Worksheets("Feuil1").Range("B2").Value & "*.xlsx"

La boucle While et la méthode dir permettent d'analyser chaque éléments/fichiers xlsx du dossier; en revanche si j'utilise la méthode FileDialog ça ne semble pas fonctionner...

Il doit y avoir une façon d'adapter la chose mais ... après recherches je ne trouve pas comment ....

En vous remerciant :)

Nb : le but est ensuite, si la recherche est fructueuse, d'aller chercher les coordonnée latitude et longitude en fonction de la ville dans le fichier. Mais pour cela je suis en train de potasser la méthode ADODB afin de pouvoir le faire directement en mémoire.

Hélas, la propriété .Filters ne joue que sur l'extension des fichiers. A gauche du séparateur il ne peut y avoir qu'une "*"; en revanche, tu peux créer tes propres formats de fichier comme Filters.Add "Toto", "*.toto", 1.

Je te propose le code suivant pour rester dans le VBA (désolé, j'ai dû triturer un peu le tien) :

Sub test2()
    Dim dlgopen As FileDialog

    Set dlgopen = Application.FileDialog(msoFileDialogOpen)
    Do
        With dlgopen
            .AllowMultiSelect = False
            .Title = "Merci de choisir un dossier"
            .Filters.Clear
            .Filters.Add "Excel", "*.xls*", 1
            .InitialFileName = "D:\Dropbox\YGGD\13. MEDIATHEQUE\WORKING PROJECTS SPACE\MAPPING - parc GMS\v.2020 0715\*" & Range("B2") & "*"

            If .Show = -1 Then
                For Each fpath In .SelectedItems
                    importpath = fpath
                Next fpath
            Else
                choix = MsgBox("Vous n'avez pas sélectionné de fichier." & vbCrLf & vbCrLf & "Fin de traitement ?", vbYesNo, "Pas de sélection")
                If choix = vbYes Then Exit Sub
                fileopen = False
            End If
        End With
    Loop While fileopen = False

    Set dlgopen = Nothing
End Sub

Bonsoir Optimix,

Merci pour ta réponse. Désolé pour le retard, je me suis retrouvé avec une autre problématique autour du même sujet et j'essaie d'en voir le bout.

J'essaie de me pencher sur ta proposition demain matin ! :)

Rechercher des sujets similaires à "vba analyser noms fichier dossier"