Supposons que l’on n’ait pas beaucoup de dossiers à créer avec VBA et Excel, mais le cas inverse. C’est-à-dire qu’il existe un répertoire avec beaucoup de sous-répertoires sur un disque et que, pour une raison ou une autre, on a besoin de ces sous-répertoires sous forme de liste pour pouvoir les traiter.
Situation de départ : de nombreux sous-répertoires doivent être transférés dans une feuille de calcul Excel
Un cas d’application fictif : on dispose de nombreux documents que l’on doit remettre à quelqu’un ou à une autre entreprise. Ces documents sont structurés dans de nombreux dossiers individuels. On aimerait maintenant documenter la progression et le statut de la remise des documents sous forme de liste Excel. Or, il serait fastidieux et inefficace de taper individuellement chaque nom de dossier dans le tableau Excel. Un tel processus doit être automatisé. La meilleure façon d’y parvenir est d’utiliser VBA. Voici donc la situation de départ.

Macro pour lire les sous-dossiers
Pour lire tous les noms de répertoires, il suffit d’insérer la macro suivante dans l’éditeur Visual Basic.
Option Explicit
Public Sub ListFolder()
Dim objFSO As Object
Dim folder As Object
Dim strPfad As String
Dim subFolder As Object, colSubfolders As Object
Dim i As Integer
'Remplacez ici le chemin d'accès au répertoire à lire.
strPfad = "C:\Users\UserName\Desktop\temp\ImageFolder"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set folder = objFSO.GetFolder(strPfad)
Set colSubfolders = folder.Subfolders
'définir ici la ligne de départ "1" pour Excel
i = 1
For Each subFolder In colSubfolders
i = i + 1
Range("A" & i).Value = subFolder.Name
Next subFolder
Set folder = Nothing
Set colSubfolders = Nothing
Set objFSO = Nothing
End Sub
La macro doit être insérée de préférence dans le tableau correspondant, dans lequel les sous-répertoires doivent être listés. Dans l’exemple, il s’agit du tableau 2. Si l’on ajoute la macro au classeur, il faut encore définir à quel tableau elle se réfère.

Il ne reste plus qu’à adapter le chemin du répertoire qui doit être lu et à définir la ligne (variable i) et la colonne (lettre pour Range [A]) par laquelle la cellule doit commencer à saisir les noms de dossiers.
Résultat
Une fois que tout cela est fait, on peut exécuter la macro via le symbole vert Lecture dans l’éditeur VBA ou via les « Outils de développement » (Alt+F8) dans la feuille de calcul Excel.
Pour l’exemple présenté ici, le résultat se présente alors comme dans l’image ci-dessous.

Outre la lecture de dossiers, il est possible de lire des pages web entières avec VBA.