¿Cómo enumerar todas las carpetas y subcarpetas en Excel?
Al trabajar con tareas de gestión de directorios o archivos, es posible que te encuentres con la necesidad de obtener rápidamente una lista completa de todas las carpetas y subcarpetas dentro de un directorio específico y ver esa información directamente en Excel. Lamentablemente, Excel no proporciona una función integrada ni un asistente simple para recuperar automáticamente todos los nombres de carpetas o subcarpetas de una ruta de carpeta designada. Este artículo introduce un código VBA que te permite listar todas las carpetas y subcarpetas de cualquier directorio elegido directamente en tu hoja de cálculo. Esto minimiza el riesgo de errores humanos y elimina trabajo tedioso, ayudándote a rastrear y gestionar rápidamente la organización de tus datos.
Usar código VBA para listar todas las carpetas y subcarpetas
Usar código VBA para listar todas las carpetas y subcarpetas
Si deseas extraer y mostrar todos los nombres de carpetas y subcarpetas desde un directorio especificado en Excel, aprovechar VBA (Visual Basic for Applications) es una solución efectiva. Este enfoque proporciona flexibilidad y control, permitiéndote no solo obtener los nombres de las carpetas, sino también información adicional como las rutas de las carpetas, fechas de creación y fechas de última modificación. Este método es especialmente adecuado para usuarios familiarizados con las funciones del desarrollador de Excel y aquellos que manejan sistemas de archivos dinámicos o que cambian con frecuencia.
1. Presiona ALT + F11 para abrir el editor "Microsoft Visual Basic for Applications". Esta herramienta te permite agregar y editar macros dentro de tu libro de trabajo.
2. En el editor VBA, haz clic en Insertar > Módulo. Esto creará una nueva ventana de módulo. Copia y pega el siguiente código en el módulo:
Código VBA: Enumerar todas las carpetas y subcarpetas
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. Después de insertar el código, presiona F5 o haz clic en el botón Ejecutar en el editor VBA para ejecutar la macro. Aparecerá un cuadro de diálogo Elegir la carpeta, solicitándote que selecciones el directorio objetivo que deseas escanear en busca de carpetas y subcarpetas.
4. Selecciona el directorio deseado y haz clic en Aceptar. La macro procesará el directorio y generará un nuevo libro de trabajo listando todas las carpetas y subcarpetas junto con sus rutas completas, directorio padre inmediato, nombres, fechas de creación y fechas de última modificación, como se muestra a continuación:
Algunos consejos prácticos y notas para usar este código:
- Si tu estructura de directorios es muy grande, la macro puede tardar algún tiempo en procesar todas las carpetas. Por favor, ten paciencia durante la ejecución y evita interrumpir el proceso.
- El método VBA requiere que la configuración de macros esté habilitada; de lo contrario, el código no funcionará correctamente. Si encuentras advertencias de seguridad, revisa la configuración del Centro de confianza en las Opciones de Excel.
- Si accidentalmente seleccionas la carpeta incorrecta, simplemente vuelve a ejecutar la macro y elige el directorio correcto.
- Este enfoque enumera solo la información de carpetas y subcarpetas; si necesitas listar archivos también, consulta el artículo relacionado a continuación para más opciones.
- Si varios usuarios comparten el libro de trabajo, recuérdales que deben habilitar las macros en sus propias computadoras para utilizar esta funcionalidad de listado dinámico.
- Si el libro de trabajo generado está en blanco o incompleto, asegúrate de que el directorio seleccionado no esté vacío y de que tengas los permisos de lectura adecuados. Para árboles de carpetas particularmente profundos o complejos, revisa los límites de recursos de tu sistema y considera procesar en lotes o subdirectorios si es necesario.
Esta solución VBA es flexible, no requiere complementos adicionales ni software externo, y crea automáticamente un libro de trabajo de salida para tu conveniencia. Sin embargo, es más adecuada para usuarios familiarizados con operaciones básicas de macros y podría requerir ajustes adicionales para personalizaciones específicas.
Artículo relacionado:
¿Cómo listar archivos en un directorio en una hoja de cálculo en Excel?
Las mejores herramientas de productividad para Office
Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...
Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
- ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!