Existence différents fichiers dans un dossier

Bonjour à tous,

Mon souhait est le suivant:

Je cherche à réaliser une macro permettant de rechercher un bon nombre de fichiers dans un dossier (et ses sous-dossiers!). L’ensemble des noms des fichiers à rechercher sont notés dans la colonne B. J’aimerais que lorsqu’un fichier est détecté, la macro mette en vert la cellule de la colonne J, qui est sur la même ligne. Dans le cas inverse, cette cellule se met en rouge.

J’aimerais que cette macro fonctionne de la ligne 2 à 14000.

Je ne suis pas très loin de la solution mais je suis bloqué car ma macro manque de souplesse. Ce manque est dû au fait que parfois les noms de fichiers de la colonne B ne sont pas des noms de fichiers (caractère comme le ":" j'imagine), et donc elle plante. L'erreur que je reçois est généralement "52, le nom du fichier est erroné" ou quelque chose du genre. Par ailleurs j'aimerais bien avoir une seconde macro qui fait exactement la même chose que la première à la différence qu'elle ne recherche pas le nom exact du fichier inscrit dans les cellules de la colonne B, mais que si un fichier de mon dossier contient la chaîne de caractères inscrite dans une cellule de la colonne B alors elle compte le fichier comme présent, et met la cellule de la même ligne en colonne J, en vert.

Si quelqu’un a la capacité de m’aider sur ce sujet, je lui en serais très reconnaissant ! Merci beaucoup,

SkillzZ

5classeur1.xlsx (13.96 Ko)

bonsoir,

une solution (qui ne fonctionne que sur windows)

Sub aargh()
    rep = "d:\downloads\"    'répertoire de base à adapter
    a = lfr(rep, "*.model")    'adapter le filtre éventuellement
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To dl
            .Cells(i, "J").Interior.Color = vbRed
            For j = LBound(a) To UBound(a)
                If InStr(a(j), .Cells(i, 2)) <> 0 Then .Cells(i, "J").Interior.Color = vbGreen: Exit For
            Next j
        Next i
    End With
End Sub

Function lfr(rep, filtre, Optional ByRef dict, Optional n = 0)
    If IsObject(dict) = False Then Set dict = CreateObject("scripting.dictionary")
    Set fso = CreateObject("scripting.filesystemobject")
    Set rep = fso.getfolder(rep)
    For Each repf In rep.subFolders
        lfr repf, filtre, dict, n + 1
    Next repf
    For Each f In rep.Files
        fn = f.Name
        If f.Name Like filtre Then
            dict.Add f.Path, 0
        End If
    Next f
    If n = 0 Then lfr = dict.keys
End Function

Bonsoir h2so4,

Merci beaucoup pour ta réponse ! Je l'essaye dès demain.

Bonne soirée à toi,

SkillzZ

Rechercher des sujets similaires à "existence differents fichiers dossier"