Lister le contenu et la taille d'un sous répertoire et de ses sous dossiers
Copie ce qui suit dans un module standard d'un fichier vierge
A ) Dans le haut du module, tu dois déclarer la variable A
B ) Dans la procédure "Test" indique le répertoire à tester
sub test()
Dim A As Long
Dim Nb&, taille As Double
'nombre de fichiers et la taille de chacun d'eux
'dans le répertoire spécifié et ses
'sous-répertoires
Application.ScreenUpdating = False
A = 1
'Répertoire à adapter
NbDeFichiers "C:\Atravail", Nb&, taille, True
With Worksheets("Feuil1")
.Range("A1") = "Nom du répertoire"
.Range("B1") = "Nom du fichier"
.Range("C1") = "Taille du fichier"
.Range("C" & A + 1) = taille
.Range("B" & A + 1) = "Total (en octets)"
.Range("B" & A + 1).Font.Bold = True
.Range("C" & A + 1).Font.Bold = True
.Range("A1:C1").Font.Bold = True
.Range("A:C").EntireColumn.AutoFit
End With
Application.ScreenUpdating = True
MsgBox "Nombre de fichiers : " & Nb & " " & vbCrLf & _
"taille du répertoire : " & taille & " octets."
end subsub NbDeFichiers(LeDossier$, Cpte&, taille As Double, _
Optional SousDossiers As Boolean = True)
Dim fso As Object, Dossier As Object Dim sousRep As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(LeDossier)
For Each file In Dossier.Files
Cpte = Cpte + 1
taille = taille + file.Size
A = A + 1 With Worksheets("Feuil1")
.Cells(A, "A") = Dossier.Name
.Cells(A, "B") = file.Name
.Cells(A, "C") = file.Size
End With
Next 'traitement récursif des sous dossiers
If SousDossiers Then
For Each sousRep In Dossier.subFolders
NbDeFichiers sousRep.Path, Cpte, taille
Next sousRep
End If
Set fso = Nothing
end subIl se peut que tu trouves dans la liste plusieurs fichiers ayant ce nom : Thumbs.db. Tu trouveras l'explication à cette adresse : http://www.siteduzero.com/tuto-3-17335-1-supprimer-les-thumbs-db.html
Auteur : Denis Michon
Mots clefs associés à cette page : dossier, répertoire, fichier, classeur, file, xls, taille
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
