Bonjour,
J'ai modifié le code donné en exemple pour lister les répertoires et sous-répertoires.
Mais la liste se limite à 32000 fichiers.
Y-a-t-il moyen de passer outre ?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 Option Explicit Dim i As Integer Dim Cible As Byte Sub listeDossiersEtSousDossiers(Racine As String) Application.ScreenUpdating = False i = 3 Cible = NbSeparateur(Racine) ListeDossiers Racine Application.ScreenUpdating = True End Sub Sub ListeDossiers(NomRep As String) Dim Fso As Object Dim SourceFolder As Object Dim SourceFile As Object Dim SubFolder As Object Dim File As Object On Error GoTo Fin Set Fso = CreateObject("Scripting.FileSystemObject") Set SourceFolder = Fso.GetFolder(NomRep) For Each SubFolder In SourceFolder.SubFolders ' --------------- Pour afficher une ligne vide avec le répertoire seul avant les fichiers ' Si non les répertoires vides ne figure pas ' i = i + 1 ' Cells(i, 2) = SubFolder.Path ' Cells(i, 4) = SubFolder.Size ' Cells(i, 5) = SubFolder.DateLastModified For Each File In SubFolder.Files i = i + 1 Cells(i, 2) = SubFolder.Path Cells(i, 3) = File.Name Cells(i, 4) = File.Size Cells(i, 5) = File.DateLastModified Next File ListeDossiers SubFolder.Path Next SubFolder Fin: End Sub Function NbSeparateur(Chemin As String) As Byte Dim m As Integer Dim Nb As Byte For m = 1 To Len(Chemin) If Mid(Chemin, m, 1) = "\" Then Nb = Nb + 1 m = m + 1 End If Next NbSeparateur = Nb End Function
Partager