Come elencare tutte le cartelle e le relative sottocartelle in Excel?
Quando si gestiscono directory o file, può capitare di dover ottenere rapidamente un elenco completo di tutte le cartelle e sottocartelle all’interno di una directory specifica e visualizzarlo direttamente in Excel. Purtroppo, Excel non offre né una funzione integrata né una procedura guidata semplice per recuperare automaticamente tutti i nomi delle cartelle da un percorso di file specificato. Questo articolo presenta un codice VBA che permette di elencare direttamente nel foglio di lavoro tutte le cartelle e sottocartelle di qualsiasi directory selezionata, riducendo il rischio di errori umani, eliminando operazioni ripetitive e consentendovi di monitorare e gestire con efficienza l’organizzazione dei vostri dati.
Utilizzare il codice VBA per elencare tutte le cartelle e le sottocartelle
Utilizzare il codice VBA per elencare tutte le cartelle e le sottocartelle
Se si desidera estrarre e visualizzare tutte le cartelle e i nomi delle cartelle di una directory specificata in Excel, l’utilizzo di VBA (Visual Basic for Applications) rappresenta una soluzione efficace. Questo approccio offre flessibilità e controllo, consentendo non solo di recuperare i nomi delle cartelle, ma anche informazioni aggiuntive come i percorsi dei file, le date di creazione e gli orari delle ultime modifiche. È particolarmente adatto agli utenti esperti delle funzionalità per sviluppatori di Excel e che gestiscono strutture di file dinamiche o soggette a frequenti aggiornamenti.
1. Premere ALT + F11 per aprire l'editor «Microsoft Visual Basic for Applications». Questo strumento ti permette di aggiungere e modificare macro nella tua cartella di lavoro.
2. Nell'editor VBA, fai clic su Inserisci > Modulo. Si aprirà una nuova finestra del modulo. Copia e incolla il seguente codice nel modulo:
Codice VBA: elencare tutte le cartelle e i Nome cartella
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. Dopo aver inserito il codice, premere F5 oppure fare clic sul pulsante Esegui nell'editor VBA per avviare la macro. Verrà visualizzata la finestra di dialogo Scegli la cartella, che chiederà di selezionare la directory da analizzare per individuare cartelle e sottocartelle.

4. Seleziona la directory desiderata e fai clic su OK. La macro elaborerà la directory e genererà un nuovo elenco cartelle di lavoro contenente tutte le cartelle e sottocartelle con i relativi percorsi completi, la directory principale immediata, i nomi, le date di creazione e le ultime date di modifica, come illustrato di seguito:

Alcuni suggerimenti pratici e note per l'utilizzo di questo codice:
- Se la struttura delle directory è molto ampia, la macro potrebbe impiegare del tempo per elaborare tutte le cartelle. Si prega di avere pazienza durante l'esecuzione ed evitare di interrompere il processo.
- Il metodo VBA richiede che le macro siano abilitate; in caso contrario, il codice non verrà eseguito correttamente. Qualora compaiano avvisi di sicurezza, verificare le impostazioni del Centro protezione nelle Opzioni di Excel.
- Se si seleziona accidentalmente la cartella sbagliata, basta rieseguire la macro e scegliere la directory corretta.
- Questo approccio elenca esclusivamente informazioni relative a cartelle e sottocartelle; per includere anche i file, consulta l'articolo correlato qui sotto e scopri ulteriori opzioni.
- Se più utenti condividono la cartella di lavoro, ricordate loro di abilitare le macro sui propri computer per sfruttare appieno questa funzionalità dinamica di elenco.
- Se la cartella di lavoro generata risulta vuota o incompleta, assicurati che la directory selezionata non sia vuota e che tu disponga delle necessarie autorizzazioni di lettura. In presenza di strutture di cartelle particolarmente profonde o complesse, verifica i limiti delle risorse di sistema e, se necessario, valuta l’elaborazione in lotti o suddivisa per sottodirectory.
Questa soluzione VBA è flessibile, non richiede componenti aggiuntivi né software esterni e genera automaticamente una cartella di lavoro di output per la massima comodità dell’utente. Tuttavia, è particolarmente adatta a utenti esperti nelle operazioni base con le macro e potrebbe necessitare di ulteriori personalizzazioni per soddisfare esigenze specifiche.
Articolo correlato:
Come si fa a elencare i file di una directory direttamente nel foglio di lavoro di Excel?
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi