Liste de fichiers dans Excel

Résolu
Bonsoir à tous,

Je vais avoir à faire un travail dans lequel je vais devoir comparer les fichiers contenus dans un répertoire à une liste dans un classeur Excel.
Dans un répertoire je vais avoir environ 2000 photos, chacune ayant un nom différent de la forme suivante "319547654801.Jpeg". Tous les noms de fichiers auront la même forme.
Dans un classeur Excel, sur la feuil1, dans la colonne D je vais avoir la liste de toutes les photos sous la forme suivante "319547654801".Ce que je souhaiterais c'est récupérer, sur la même feuille et dans une autre colonne, ou sur une autre feuille, le nom de tous les fichiers photo et de les comparer pour être sûr d'avoir toutes les photos de la liste Excel.

Pouvez-vous m'aider ?
Cordialement
Mistral

3 réponses

  1. Modérateur
    Bonsoir,

    Pour récupérer la liste de tes fichiers jpeg contenus dans un répertoire (que tu choisiras) dans la colonnes F (tu peux adapter si ce n'est pas là que tu souhaites l'avoir), crée un module VBA pour ton classeur et mets y le code suivant :

    Sub ListerFichierJPEG()  
    
    Dim Repertoire As String, Fichier As String  
    Dim Ws As Worksheet  
    Dim i As Integer  
       
    Application.ScreenUpdating = False  
       
    'Définit la Première feuille du classeur contenant cette macro  
    '(pour recevoir les donnée extraites du répertoire).  
    Set Ws = ThisWorkbook.Worksheets(1)  
       
    'Définit le répertoire de recherche  
    Repertoire = ChoixRepertoire & "\"  
    'Spécifie la recherche pour le fichiers .jpeg  
    Fichier = Dir(Repertoire & "*.jpeg")  
     i = 1  
    'Boucle sur les fichiers du répertoire  
    Do While Fichier <> ""  
                i = i + 1  
            'Récupère le nom des fichiers jpeg sans l'extension  
             Pos = InStr(1, Fichier, ".", 1)  
             Ws.Cells(i, 5) = Left(Fichier, Pos - 1)  
               
             Fichier = Dir  
    Loop  
       
    Application.ScreenUpdating = True  
    MsgBox "Terminé"  
    End Sub  
    
    
    Function ChoixRepertoire()  
       Dim objShell As Object, objFolder As Object, oFolderItem As Object  
        Dim Chemin As String  
          
        Set objShell = CreateObject("Shell.Application")  
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)  
          
        On Error Resume Next  
        Set oFolderItem = objFolder.Items.Item  
        Chemin = oFolderItem.Path  
        ChoixRepertoire = Chemin  
    End Function  
    
    


    Bonne soirée
    "Pour trouver une solution à ses problèmes, il faut s'en donner la peine."
    0
    1. Contributeur
      bonjour Mistral_13200, aquarelle,

      J'avais travaillé sur une proposition similaire mais un peu plus lentement :)

      Voici le classeur test :

      https://www.cjoint.com/?AKlx0ZqF7Fw
      0
      1. Modérateur
        Bonsoir gbinforme,

        Ma rapidité vient du fait que c'est une macro que j'utilise personnellement donc je n'avais qu'à changer l'extension et la colonne :)
        0
    2. Bonjour Aquarelle,
      Bonjour Gbinforme,

      Un grand merci à vous deux pour vos solutions qui fonctionne parfaitement.
      J'ai fait un test sur une vingtaine de fichiers sans problème je vais tester ça sur un repertoire plus important.
      Après cela j'adapterais la plus rapide des deux à mon cas car tous se trouvera dans un même répertoire et je sais récuperer son chemin pour l'utiliser dans mon code.

      Merci à vous pour votre aide.
      Cordialement.
      Mistral
      0
      1. Modérateur
        Bonjour,

        De rien et bonne continuation :)
        0