Bonjour.
Je reviens vers vous car j'ai un dernier soucis sur ma maccro.
Celle-ci me permet de boucler sur tout les fichiers excel afin de ressortir certaines informations dans un autre classeur (Recupdevis)
Ma boucle est écrite comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Dim Dossier As String Dossier = "C:\Users\controlegestion\Documents\Mel\Devis" Dim Fso As New Scripting.FileSystemObject Set Fso = CreateObject("Scripting.FileSystemObject") Dim Subfolder As Scripting.Folder Set Fso = CreateObject("Scripting.FileSystemObject") Set Subfolder = Fso.GetFolder("C:\Users\controlegestion\Documents\Mel\Devis") Dim Sourcefolder As Scripting.Folder Set Fso = CreateObject("Scripting.FileSystemObject") Set Sourcefolder = Fso.GetFolder("C:\Users\controlegestion\Documents\Mel\Devis") Dim Filesitem Set Filesitem = CreateObject("Scripting.FileSystemObject") Set Filesitem = Fso.GetFile("C:\Users\controlegestion\Documents\Mel\Recupdevis.xlsm") Dim fi1 As Object, fi2 As Object, fi3 As Object 'Pour tout dossier ce trouvant dans le dossier sources (devis) For Each fi1 In Fso.GetFolder(Dossier).SubFolders ' Pour tout fichiers se trouvant dans les dossiers (fi1), se trouvant eux même dans le dossier source (devis) For Each fi2 In fi1.SubFolders ' Pour tout sous-dossiers se trouvant dans les dossiers (fi1) For Each fi3 In fi2.Files If fi3.Type = "Feuille de calcul Microsoft Excel 97-2003" Then ' Ouvrir le fichier Set wbk = Workbooks.Open(fi3, 0)
Le soucis c'est qu'en réalité ça ne boucle pas sur tout. En effet, les fichiers présent a la racine ne sont pas pris en compte, seul ceux présent dans des sous-dossiers. En gros si j'ai :
[Dossier Devis]
-> [Client1]
->[Client1devisn°x]
-> Devisn°x.xls
La maccro va bien me trouver le devis n°x
Mais si j'ai
[Dossier]
-> [Client1]
-> Devisn°x.xls
La maccro va "ignoré" le fichier et donc ne jamais me ressortir les informations voulut. J'aurais put créer un sous-dossiers dans client1, mais malheureusement j'ai plus de 250 clients, et en plus je n'ai pas l'autorisation pour créer les sous-dossiers enfin, on m'interdit de toucher au réseau zcom.
J'ai bien essayer comme ceci :
Mais du coup, ça ne boucle plus du tout, enfin si mais ça ne trouve rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 'Pour tout dossier ce trouvant dans le dossier sources (devis) For Each fi1 In Fso.GetFolder(Dossier).SubFolders ' Pour tout fichiers se trouvant dans les dossiers (fi1), se trouvant eux même dans le dossier source (devis) For Each fi2 In fi1.SubFolders ' Pour tout sous-dossiers se trouvant dans les dossiers (fi1) For Each fi3 In fi2.Files For Each fi4 In fi1.Files
Un coup de main? Merci d'avance!
Partager