Macro recherche documents

Bonjour,

J'ai un problème dans un code VBA.

Mon code a pour fonction de chercher des feuilles Excel contennant les descriptifs de produits, mais ces feuilles sont elles mêmes contenues dans plusieurs imbrications de dossier qui représente la série, le lieu de fabrication et j'en passe.

Je m'explique :

J'ai un dossier principal qui est C:\Users\Documents\

Dans ce dossier, je vais chercher certains dossiers qui ont des indicatifs de la forme chiffre, chiffre, point exemple : 01. ou 20.

Dans le nouveau répertoire commençant de cette forme là, je dois là aussi étudier tous les dossiers et vérifier qu'ils contiennent un répertoire appelé "Données".

Alors, si le repertoire "Données" est dedans, je dois extraire le Directory ainsi que le nom du fichier pour le mettre dans ma feuille Excel.

L'explication étant assez lourde, je vous envoie mon programme :

Sub MAJ_auto_fichier()
Dim repertoire As String, repertoire1 As String, repertoire2 As String, NomSite As String, NomProduit As String, x As String
Dim produit As String
Dim i As Integer, j As Integer, k As Integer
Dim y As Date

'---------------------------------------------------------1ere etape--------------------------------------
'On récupère tous les fichiers nommés comme 02. ou 20. 

   ThisWorkbook.Sheets("Liste1").Activate
    repertoire = "C:\Users\Documents\"
    NomSite = Dir(repertoire, vbDirectory)
    i = 1
    Do While NomSite <> ""
        If NomSite <> "." And NomSite <> ".." Then
            If (GetAttr(repertoire & NomSite) And vbDirectory) = vbDirectory Then
                  x = Left(NomSite, 3) Like "##."
                  y = FileDateTime(repertoire + NomSite)
                  If x = True Then                  'And y => DateValue(Now) - 80 Then
 '--------------------------------------------------------------------------------------------------------------------------------
                repertoire = repertoire + NomSite + "\"
                NomProduit = Dir(repertoire, vbDirectory)
                Do While NomProduit  <> ""
                       If NomProduit <> "." And NomProduit  <> ".." Then
                             If (GetAttr(repertoire & NomProduit) And vbDirectory) = vbDirectory Then

 '------------------------------------------------------------------------------------------------
                               repertoire1 = repertoire + NomProduit + "\"
                               repertoire2 = repertoire1 + "Données" + "\"
                               If Dir(repertoire2, vbDirectory) <> "" Then         'si le dossier existe
                                    produit = Dir(repertoire2 & "*.xls")      'on regarde si des fichiers excel existent
                                    Do While produit <> ""                'tant qu'il existe des feuilles excel
                                               Cells(i, "H") = repertoire2
                                               Cells(i, "K") = produit
                                                i = i + 1
                                               loge = Dir
                                   Loop
                             End If
                             repertoire1 = ""
                             repertoire2 = ""
                      End If
                 End If
               NomProduit = Dir
             Loop
          End If
        End If
      End If
      NomSite = Dir
   Loop
End Sub

Tout ce passe bien jusqu'à l'instruction NomProduit=Dir

              
                       End If
                 End If
               NomProduit = Dir

En effet, je n'arrive pas à passer à la suite, j'ai une erreur de type :

Erreur d'execution '5': Argument ou appel de procédure incorrect

Je n'ai pas réussi à savoir d'où venait l'erreur, je suppose que cela vient de l'imbrication des changements de directory.

Votre expertise m'éclairera sur ce problème,

Merci d'avance et bonne journée,

Loïc

Rechercher des sujets similaires à "macro recherche documents"