Recherche d'un dossier pour faire correspondre chaque file à un tableau

J'ai ajouté une boucle For (voir la partie k) et ça ralentit tout mon programme. Est-il possible de rendre cela plus efficace?

Je search un dossier spécifique et j'essaie de faire correspondre chaque file à un tableau de ma feuille de calcul. J'essaie de faire Quarters (1, j) dans la boucle For k même que Quarters (i, j) à partir de la partie inférieure du code, mais je ne sais pas comment le faire puisque j'ai déjà utilisé le integer i.

For j = 1 To 2 For k = 1 To 39 If k <= 29 Then 'Looks at all the files in the folder for the given Quarter SourceFolderName = FolderPath & "\" & Quarters(1, j) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(SourceFolderName) End If If k > 29 Then SourceFolderName = FolderPath & "\" & Quarters(k, j) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(SourceFolderName) End If For Each objFile In objFolder.Files i = 1 NotAssigned = True 'Keep going until we match the file While NotAssigned = True 'If the beginning of the file name matches for a given state, 'assign the file name to that state for this quarter If Left(objFile.Name, 9) = StateAbbr(i, 1) & Quarters(i, j) & "FA" Then WBName(i, j) = objFile.Name 'Stop trying to match the file NotAssigned = False End If If i = 39 Then NotAssigned = False i = i + 1 Wend Next objFile Set objFile = Nothing Set objFolder = Nothing Set objFSO = Nothing Next k Next j 

J'ai réussi à modifier mon code entier pour utiliser DIR au lieu de boucler chaque cellule dans la feuille de calcul et de boucler chaque file dans mon dossier. Mon time d'exécution réduit de 40 min à 2 secondes !!!!!!! Je suis tellement étonné de cela maintenant. Voici la solution si vous êtes intéressé.

 Dim StrFile As Ssortingng For j = 1 To 2 For i = 1 To 39 StrFile = Dir(FolderPath & "\" & Quarters(i, j) & "\*FA*") Do While Len(StrFile) > 0 If Left(StrFile, 9) = StateAbbr(i, 1) & Quarters(i, j) & "FA" Then WBName(i, j) = StrFile End If StrFile = Dir Loop Next i Next j