Como listar todas as pastas e subpastas no Excel?
Ao trabalhar com tarefas de gerenciamento de diretórios ou arquivos, você pode se deparar com a necessidade de obter rapidamente uma lista completa de todas as pastas e subpastas dentro de um diretório específico e visualizar essas informações diretamente no Excel. Infelizmente, o Excel não fornece uma função embutida ou um assistente simples para recuperar automaticamente todos os nomes de pastas ou subpastas de um caminho de pasta designado. Este artigo apresenta um código VBA — que permite listar todas as pastas e subpastas de qualquer diretório escolhido diretamente na sua planilha. Isso minimiza o risco de erro humano e elimina trabalho tedioso, ajudando você a acompanhar e gerenciar rapidamente a organização dos seus dados.
Use o código VBA para listar todas as pastas e subpastas
Use o código VBA para listar todas as pastas e subpastas
Se você deseja extrair e exibir todos os nomes de pastas e subpastas de um diretório especificado no Excel, utilizar o VBA (Visual Basic for Applications) é uma solução eficaz. Essa abordagem oferece flexibilidade e controle, permitindo que você obtenha não apenas os nomes das pastas, mas também informações adicionais, como caminhos de pastas, datas de criação e datas de última modificação. Esse método é especialmente adequado para usuários familiarizados com os recursos do desenvolvedor do Excel e aqueles que lidam com sistemas de arquivos dinâmicos ou que mudam frequentemente.
1. Pressione ALT + F11 para abrir o editor "Microsoft Visual Basic for Applications". Esta ferramenta permite que você adicione e edite macros dentro da sua pasta de trabalho.
2. No editor VBA, clique em Inserir > Módulo. Isso criará uma nova janela de módulo. Copie e cole o seguinte código no módulo:
Código VBA: Listar todas as pastas e subpastas
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. Após inserir o código, pressione F5 ou clique no botão Executar no editor VBA para executar a macro. Uma caixa de diálogo Escolher a pasta aparecerá, solicitando que você selecione o diretório alvo que deseja escanear em busca de pastas e subpastas.
4. Selecione o diretório desejado e clique em OK. A macro processará o diretório e gerará uma nova pasta de trabalho listando todas as pastas e subpastas junto com seus caminhos completos, diretório pai imediato, nomes, datas de criação e datas de última modificação, conforme mostrado abaixo:
Algumas dicas práticas e observações para usar este código:
- Se a estrutura do seu diretório for muito grande, a macro pode levar algum tempo para processar todas as pastas. Por favor, seja paciente durante a execução e evite interromper o processo.
- O método VBA requer que suas configurações de macro estejam habilitadas; caso contrário, o código não funcionará corretamente. Se você encontrar avisos de segurança, verifique suas configurações no Centro de Confiabilidade em Opções do Excel.
- Se você selecionar acidentalmente a pasta errada, basta executar novamente a macro e escolher o diretório correto.
- Essa abordagem lista apenas informações de pastas e subpastas; se você precisar listar arquivos também, consulte o artigo relacionado abaixo para mais opções.
- Se vários usuários compartilham a pasta de trabalho, lembre-os de que as macros devem estar habilitadas em seus próprios computadores para usar essa funcionalidade de listagem dinâmica.
- Se a pasta de trabalho gerada estiver em branco ou incompleta, certifique-se de que o diretório selecionado não está vazio e que você tem permissões de leitura adequadas. Para árvores de pastas particularmente profundas ou complexas, revise os limites de recursos do seu sistema e considere processar em lotes ou subdiretórios, se necessário.
Essa solução VBA é flexível, não requer add-ins adicionais ou software externo e cria automaticamente uma pasta de trabalho de saída para sua conveniência. No entanto, ela é mais adequada para usuários familiarizados com operações básicas de macro e pode exigir ajustes adicionais para personalizações específicas.
Artigo relacionado:
Como listar arquivos em um diretório para uma planilha no Excel?
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo.Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface de abas para o Office e facilita muito seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas da mesma janela, em vez de novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!