Dans cet article, nous allons créer une macro pour rassembler les détails de tous les fichiers d’un dossier.

Avant d’exécuter la macro, nous devons spécifier le chemin du dossier dans la zone de texte.

ArrowMain

Lors de l’exécution de la macro, elle retournera le nom du fichier, le chemin du fichier, la taille du fichier, la date de création et la date de la dernière modification de tous les fichiers du dossier.

ArrowOutput

Explication logique

Dans cet article, nous avons créé deux macros «ListFilesInFolder» et «TestListFilesInFolder».

La macro «ListFilesInFolder» affichera les détails relatifs à tous les fichiers du dossier.

La macro «TestListFilesInFolder» est utilisée pour spécifier l’en-tête et appeler la macro «ListFilesInFolder».

Explication du code

Définir FSO = CreateObject (« Scripting.FileSystemObject »)

Le code ci-dessus est utilisé pour créer un nouvel objet d’objet de système de fichiers.

Définir SourceFolder = FSO.GetFolder (SourceFolderName)

Le code ci-dessus est utilisé pour créer un objet du dossier spécifié par le chemin.

Cellules (r, 1) .Formula = FileItem.Name Cells (r, 2) .Formula = FileItem.Path Cells (r, 3) .Formula = FileItem.Size Cells (r, 4) .Formula = FileItem.DateCreated Cells ( r, 5) .Formula = FileItem.DateLastModified Le code ci-dessus est utilisé pour extraire les détails des fichiers.

Pour chaque sous-dossier dans SourceFolder.SubFolders ‘Appel de la même procédure pour les sous-dossiers ListFilesInFolder SubFolder.Path, True Next SubFolder Le code ci-dessus est utilisé pour extraire les détails de tous les fichiers dans les sous-dossiers.

Colonnes (« A: E »). Sélectionnez Selection.ClearContents Le code ci-dessus est utilisé pour supprimer le contenu de la colonne A à E.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)

'Declaring variables

Dim FSO As Object

Dim SourceFolder As Object

Dim SubFolder As Object

Dim FileItem As Object

Dim r As Long



'Creating object of FileSystemObject

Set FSO = CreateObject("Scripting.FileSystemObject")

Set SourceFolder = FSO.GetFolder(SourceFolderName)

r = Range("A65536").End(xlUp).Row + 1

For Each FileItem In SourceFolder.Files

'Display file properties

Cells(r, 1).Formula = FileItem.Name

Cells(r, 2).Formula = FileItem.Path

Cells(r, 3).Formula = FileItem.Size

Cells(r, 4).Formula = FileItem.DateCreated

Cells(r, 5).Formula = FileItem.DateLastModified



r = r + 1



Next FileItem

'Getting files in sub folders

If IncludeSubfolders Then

For Each SubFolder In SourceFolder.SubFolders

'Calling same procedure for sub folders

ListFilesInFolder SubFolder.Path, True

Next SubFolder

End If

Set FileItem = Nothing

Set SourceFolder = Nothing

Set FSO = Nothing

ActiveWorkbook.Saved = True

End Sub

Sub TestListFilesInFolder()

'Declaring variable

Dim FolderPath As String

'Disabling screen updates

Application.ScreenUpdating = False

'Getting the folder path from text box

FolderPath = Sheet1.TextBox1.Value

ActiveSheet.Activate

'Clearing the content from columns A:E

Columns("A:E").Select

Selection.ClearContents

'Adding headers

Range("A14").Formula = "File Name:"

Range("B14").Formula = "Path:"

Range("C14").Formula = "File Size:"

Range("D14").Formula = "Date Created:"

Range("E14").Formula = "Date Last Modified:"

'Formating of the headers

Range("A14:E14").Font.Bold = True

'Calling ListFilesInFolder macro

ListFilesInFolder FolderPath, True

'Auto adjusting the size of the columns

Columns("A:E").Select

Selection.Columns.AutoFit

Range("A1").Select

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]