Ce code obtenir le nom de chaque dossier dans le chemin défini dans la cellule A1 (par exemple C :) et les mettre dans la colonne B:
Sub GetChildFolders()
Dim fso, categoryFolder, subFolder As Object
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Set categoryFolder = fso.GetFolder(Cells(1, 1).Value)
i = 1
For Each subFolder In categoryFolder.subfolders
Cells(i, 2) = subFolder.Name
i = i + 1
Next subFolder
End Sub
Alterantively, vous pouvez créer une nouvelle formule qui renvoie un séparés par des virgules liste des dossiers: (Pour créer une nouvelle formule, ajouter un nouveau module de de le menu insertion dans la fenêtre de la VBA)
Function GetChildFoldersList(ByVal path As String)
Dim fso, categoryFolder, subFolder As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set categoryFolder = fso.GetFolder(path)
For Each subFolder In categoryFolder.subfolders
GetChildFoldersList = GetChildFoldersList + subFolder.Name + ", "
Next subFolder
If GetChildFoldersList > 0 Then
GetChildFoldersList = Left(GetChildFoldersList, Len(GetChildFoldersList) - 2)
Else
GetChildFoldersList = "Folder is Empty!"
End If
End Function
Vous pouvez utiliser Dir() pour cela. –
Que se passe-t-il si vous avez ignoré des dossiers - par ex. «AAA», «BBB», «DDD», «EEE»? –