Skip to main content

Come elencare tutte le cartelle e sottocartelle in Excel?

Author: Xiaoyang Last Modified: 2025-08-06

Quando si lavora con attività di gestione delle directory o dei file, potrebbe essere necessario ottenere rapidamente un elenco completo di tutte le cartelle e sottocartelle all'interno di una directory specifica e visualizzare tali informazioni direttamente in Excel. Purtroppo, Excel non fornisce una funzione integrata o una procedura guidata semplice per recuperare automaticamente tutti i nomi di cartelle o sottocartelle da un percorso di cartella designato. Questo articolo introduce un codice VBA che consente di elencare tutte le cartelle e sottocartelle da qualsiasi directory scelta direttamente nel foglio di lavoro. Questo riduce al minimo il rischio di errori umani ed elimina lavori tediosi, aiutandoti a tracciare e gestire rapidamente l'organizzazione dei tuoi dati.

Usa il codice VBA per elencare tutte le cartelle e sottocartelle


Usa il codice VBA per elencare tutte le cartelle e sottocartelle

Se desideri estrarre e visualizzare tutti i nomi delle cartelle e delle sottocartelle da una directory specificata in Excel, utilizzare VBA (Visual Basic for Applications) è una soluzione efficace. Questo approccio offre flessibilità e controllo, consentendoti non solo di ottenere i nomi delle cartelle ma anche informazioni aggiuntive come percorsi delle cartelle, date di creazione e date dell'ultima modifica. Questo metodo è particolarmente adatto agli utenti a proprio agio con l'utilizzo delle funzionalità di sviluppatore di Excel e a coloro che gestiscono sistemi di file dinamici o che cambiano frequentemente.

1. Premi ALT + F11 per aprire l'editor "Microsoft Visual Basic for Applications". Questo strumento ti permette di aggiungere e modificare macro all'interno della tua cartella di lavoro.

2. Nell'editor VBA, clicca Inserisci > Modulo. Questo creerà una nuova finestra del modulo. Copia e incolla il seguente codice nel modulo:

Codice VBA: Elenca tutte le cartelle e sottocartelle

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, premi F5 o clicca il pulsante Esegui nell'editor VBA per eseguire la macro. Apparirà una finestra di dialogo Scegli la cartella, che ti chiederà di selezionare la directory di destinazione che desideri scansionare per cartelle e sottocartelle.

vba code to select folder name

4. Seleziona la directory desiderata e clicca OK. La macro elaborerà la directory e genererà una nuova cartella di lavoro elencando tutte le cartelle e sottocartelle con i loro percorsi completi, la directory principale immediata, i nomi, le date di creazione e le date dell'ultima modifica come mostrato di seguito:

all folder names are listed in Excel

Alcuni suggerimenti pratici e note per l'uso di questo codice:

  • Se la struttura della tua directory è molto grande, la macro potrebbe impiegare del tempo per elaborare tutte le cartelle. Si prega di essere pazienti durante l'esecuzione e di evitare di interrompere il processo.
  • Il metodo VBA richiede che le impostazioni delle macro siano abilitate; altrimenti, il codice non funzionerà correttamente. Se incontri avvisi di sicurezza, controlla le impostazioni del Centro di protezione sotto Opzioni di Excel.
  • Se hai selezionato accidentalmente la cartella sbagliata, riavvia semplicemente la macro e scegli la directory corretta.
  • Questo approccio elenca solo le informazioni relative alle cartelle e sottocartelle; se hai bisogno di elencare anche i file, consulta l'articolo correlato qui sotto per ulteriori opzioni.
  • Se più utenti condividono la cartella di lavoro, ricorda loro che le macro devono essere abilitate sui loro computer per utilizzare questa funzionalità di elenco dinamico.
  • Se la cartella di lavoro generata è vuota o incompleta, assicurati che la directory selezionata non sia vuota e che tu abbia permessi di lettura adeguati. Per strutture di cartelle particolarmente profonde o complesse, rivedi i limiti delle risorse del tuo sistema e considera di processare in lotti o sottodirectory se necessario.

Questa soluzione VBA è flessibile, non richiede componenti aggiuntivi o software esterni e crea automaticamente una cartella di lavoro di output per tua comodità. Tuttavia, è più adatta agli utenti familiari con operazioni di base delle macro e potrebbe richiedere ulteriori personalizzazioni per specifiche esigenze.


Articolo correlato:

Come elencare i file in una directory su un foglio di lavoro in Excel?

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e genera grafici | Richiama Funzioni avanzate
Funzionalità popolari: Trova, evidenzia o identifica duplicati | Elimina righe vuote | Combina colonne o celle senza perdere dati | Arrotonda
Super RICERCA.VERT: Ricerca con criteri multipli    Ricerca valori multipli  |   Ricerca su più fogli   |   Corrispondenza approssimativa ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa a selezione multipla….
Gestione colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia lo stato di visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro & Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email da elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
I15 migliori kit di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule utili (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci immagine dal percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti per unire & dividere (Unione avanzata righe, Dividi celle, ...) | ...e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice

  • Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!