'Outils | Références Cocher Microsoft Scripting Runtime
'Nommer la zone A2..C65536 en ZoneTri
'Affecter un Bouton à TestListeFichiersDansDossier
' en mettant auparavant TestListeFichiersDansDossier en Public et non Private
'Si recursion Dossier/Sous Dossiers
' ListeFichiersDansDossier Dossier, True sinon ListeFichiersDansDossier Dossier, False
Option Explicit
Private Sub TestListeFichiersDansDossier()
Dim Dossier As String
Application.ScreenUpdating = False
Cells.Clear
' Dossier de test à adapter
Dossier = "D:\Backup\Perso\"
' s'il n'y a pas de sous dossiers à visiter
' ListeFichiersDansDossier Dossier, False
ListeFichiersDansDossier Dossier, True
Tri
MiseEnPage
Application.ScreenUpdating = True
End Sub
Private Sub ListeFichiersDansDossier(ByVal NomDossierSource As String, ByVal InclureSousDossiers As Boolean)
Dim FSO As Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Dim Fichier As Scripting.File
Dim r As Long
Set FSO = New Scripting.FileSystemObject
Set DossierSource = FSO.GetFolder(NomDossierSource)
r = Range("A65536" ).End(xlUp).Row + 1
For Each Fichier In DossierSource.Files
Application.StatusBar = r - 1
Cells(r, 1).Formula = Fichier.DateCreated
Cells(r, 2).Formula = Fichier.DateLastModified
Cells(r, 3).Formula = Fichier.Path
'Cells(r, 3).Formula = Fichier.Name
r = r + 1
Next Fichier
If InclureSousDossiers Then
For Each SousDossier In DossierSource.SubFolders
ListeFichiersDansDossier SousDossier.Path, True
Next SousDossier
End If
Set Fichier = Nothing
Set DossierSource = Nothing
Set FSO = Nothing
End Sub
Private Sub MiseEnPage()
Range("A1" ).Formula = "Date Création "
Range("B1" ).Formula = "Date Dernière Modification"
Range("C1" ).Formula = "Nom"
Range("A1:C1" ).Font.Bold = True
Columns("A:C" ).AutoFit
Columns("A:B" ).HorizontalAlignment = xlCenter
Rows("1:1" ).Select
With Selection
.RowHeight = 30
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
End With
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
Range("D1" ).Select
End Sub
Private Sub Tri()
Range("ZoneTri" ).Sort Key1:=Range("B2" ), Order1:=xlDescending, _
Key2:=Range("A2" ), Order2:=xlAscending, _
Key3:=Range("C2" ), Order3:=xlAscending
End Sub
|