VBA Boucle sur fichiers d'un dossier et de ses sous dossiers

patsyl60

XLDnaute Occasionnel
Bonjour à tous,

j'aimerai connaitre la formule vba pour faire la même boucle sur tous les fichiers d'un dossier sachant que dans ce dossier j'ai des sous dossiers. Pour info, mon dossier principal est c:\TEST EXCEL et ensuite des sous dossiers par mois et année (exemple 06_11, 07_11,etc...)puis mes fichiers à traiter.

Je sais faire la boucle finale ( celle du traitement de chaque fichier) mais je ne sais pas ouvrir chaque sous dossier.

D'avance merci de votre aide.

Patsyl60
 

Pierrot93

XLDnaute Barbatruc
Re : VBA Boucle sur fichiers d'un dossier et de ses sous dossiers

Bonjour,

regarde ceci, boucle sur tous les sous dossiers contenu dans le dossier "excel" :
Code:
Option Explicit
Sub test()
Dim Fso As Object, MonRepertoire As String
Dim f1 As Object, f2 As Object

Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "C:\MesDocs\Excel\"

For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
    For Each f2 In f1.Files
        'tes instructions
    Next f2
Next f1
End Sub

bon après midi
@+
 

patsyl60

XLDnaute Occasionnel
Re : VBA Boucle sur fichiers d'un dossier et de ses sous dossiers

Bonjour Pierrot93, tototiti2008,

Pierrot 93 , ton code semble fonctionner , je continue ma macro et si souci je reviens...

tototiti28, j'ai vu pas mal de chose sur le forum mais la plupart du temps, on liste simplement les fichiers et les sous fichiers, on ne boucle pas dessus. Je n'ai pas trouvé mon bonheur, c'est pourqoui je me suis permis d'ouvrir une nouvelle discussion.

Encore merci de votre aide.

Patsyl60
 

patsyl60

XLDnaute Occasionnel
Re : VBA Boucle sur fichiers d'un dossier et de ses sous dossiers

Re,

j'avance mais j'ai encore un problème. Dans mon code, j'arrive à ouvrir le fichier nommé f2 mais je n'arrive pas à le fermer ( message d'erreur 438 sur la ligne f2.close : propriété ou méthode non gérée par cet objet)

Avez vous une idée ?

D'avance merci.

Patsyl60

Code:
Sub test()
 Dim Fso As Object, MonRepertoire As String
 Dim f1 As Object, f2 As Object
 
Set Fso = CreateObject("Scripting.FileSystemObject")
 MonRepertoire = "C:\TEST EXCEL\"
 
For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
     For Each f2 In f1.Files
         Workbooks.Open f2
            Rows("5:5").Copy
            Windows("testsousdossiers.xls").Activate
            Range("A65536").End(xlUp)(2).Select
            ActiveSheet.Paste
            f2.Close
     Next f2
 Next f1
 End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA Boucle sur fichiers d'un dossier et de ses sous dossiers

Bonjour,

modifie comme suit :
Code:
Option Explicit
Sub test()
Dim Fso As Object, MonRepertoire As String
Dim f1 As Object, f2 As Object, wb As Workbook
 
Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "C:\TEST EXCEL\"
 
For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
    For Each f2 In f1.Files
        Set wb = Workbooks.Open(f2)
        'tes instructions
        wb.Close
     Next f2
Next f1
End Sub

bonne journée
@+
 

lengcelse

XLDnaute Nouveau
VBA importation de fichier xml, comparaison de plusieurs feuilles avec une feuille re

Bonjour, je suis débutant en vba et j'aimerais réaliser un macro sous excel qui doit me permettre d'aller sur le réseau dans le répertoire nommé référence importer un fichier xml dans la feuille 1 puis d'aller une seconde fois sur le réseau dans un autre répertoire (nommé plateforme) et parcourir les sous répertoires (exemple 5888AD) afin d'importer les fichiers xml qui se trouvent dans ses sous répertoires dans la feuille 2, 3, 4, ...... Après importation de tous ses fichiers le macro va comparaître la première colonne de la feuille 1 ( qui est ici la référence) avec la première colonne des autres feuilles et écrire dans la dernière feuille le résultat en affichant pour chaque plateforme si elle est identique à la première donc couleur verte, sinon couleur rouge et afficher les différences. En claire la dernière feuille du classeur sera une feuille de synthèses qui permettra de savoir quelle plateforme n'est pas à jour et d'aller corriger le problème. Je compte sur vous pour m'aider à réaliser ce petit projet qui par ailleurs me permettra d'apprendre un peu plus vba. Merci d'avance.

Serge
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 497
Membres
103 236
dernier inscrit
Menni