Comment lister tous les dossiers et sous-dossiers dans Excel ?
Avez-vous déjà été confronté au problème de devoir lister tous les dossiers et sous-dossiers d'un répertoire spécifié dans une feuille de calcul ? Dans Excel, il n'existe pas de méthode rapide et pratique pour obtenir le nom de tous les dossiers d'un répertoire spécifique en une seule fois. Pour résoudre cette tâche, cet article pourrait vous aider.
Utiliser un code VBA pour lister tous les dossiers et sous-dossiers
Utiliser un code VBA pour lister tous les dossiers et sous-dossiers
Si vous souhaitez récupérer tous les noms de dossiers à partir d'un répertoire spécifié, le code VBA suivant pourrait vous être utile, veuillez procéder comme suit :
1. Maintenez les touches "ALT + F11" enfoncées, et la fenêtre "Microsoft Visual Basic for Applications" s'ouvrira.
2. Cliquez sur "Insérer" > "Module", puis collez le code suivant dans la "Fenêtre Module".
Code VBA : Liste de tous les dossiers et sous-dossiers
Sub FolderNames()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Choose the folder"
.Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
getSubFolder subfld
Next subfld
End Sub
3. Ensuite, appuyez sur la touche "F5" pour exécuter ce code, et une fenêtre "Choisir le dossier" apparaîtra. Vous devrez ensuite sélectionner le répertoire dont vous souhaitez lister les noms des dossiers et sous-dossiers, voir capture d'écran :
4. Cliquez sur "OK", et vous obtiendrez le chemin du dossier et des sous-dossiers, le répertoire, le nom, la date de création et la dernière date de modification dans un nouveau classeur, voir capture d'écran :
Article connexe :
Comment lister les fichiers d'un répertoire dans une feuille de calcul Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !