Crear múltiples carpetas y subcarpetas a partir de una lista de datos en Excel
Supongamos que tienes una lista de nombres de empleados dentro de un rango de hoja de cálculo y deseas crear carpetas individuales para cada uno con el fin de almacenar su información. Crear manualmente cada carpeta puede ser muy laborioso. Sin embargo, existen métodos eficientes para agilizar este proceso. En esta guía, compartiré varios enfoques para generar rápidamente carpetas basadas en los valores de las celdas especificadas.
Crear carpetas basadas en valores de celda
- Usando el comando MD y el Bloc de notas
- Usando una poderosa herramienta: Kutools para Excel
- Usando código VBA
Crear carpetas y subcarpetas basadas en valores de celda con código VBA
Crear carpetas basadas en valores de celda
En esta sección, exploraremos varios métodos en detalle, ofreciendo instrucciones paso a paso completas para crear carpetas rápidamente y sin esfuerzo basadas en una lista de valores de celda.
Crear carpetas desde una lista usando el comando MD y el Bloc de notas
Convertir una lista de Excel en carpetas utilizando el comando MD y el Bloc de notas es un truco inteligente que combina la creación de scripts por lotes sencillos con la habilidad de Excel para mantener las cosas organizadas. Este método es excelente para crear muchas carpetas rápidamente, sin tener que hacerlo todo manualmente. Aquí tienes una guía paso a paso para realizar esta tarea:
Paso 1: Usa el comando MD para crear fórmulas
Copia o introduce la siguiente fórmula en una celda en blanco junto al primer valor de tu celda (por ejemplo, B1), y luego arrastra el controlador de relleno hacia abajo para aplicar la fórmula a todos los elementos de tu lista.
="MD "&A1
Paso 2: Copia y pega las fórmulas en un archivo de Bloc de notas
- Presiona "Ctrl + C" para copiar las celdas con la fórmula del comando MD.
- Abre el Bloc de notas y presiona "Ctrl + V" para pegar los comandos en un nuevo archivo.
Paso 3: Guarda el archivo de Bloc de notas como archivo .bat
Haz clic en "Guardar como" desde la pestaña "Archivo" en el Bloc de notas, en el cuadro de diálogo "Guardar como", elige un directorio donde deseas crear varias carpetas, y luego dale un nombre a este archivo con la extensión .bat. Finalmente, haz clic en el botón "Guardar". Ver captura de pantalla:
Paso 4: Haz doble clic en el archivo .bat para generar múltiples carpetas
- Cierra el archivo de Bloc de notas, navega hasta la carpeta donde guardaste previamente el archivo .bat.
- Ahora, observa la magia: haz doble clic en el archivo y verás cómo se crean múltiples carpetas de una vez. Ver la demostración a continuación:
Crear carpetas desde una lista usando una herramienta poderosa: Kutools para Excel
Con la poderosa función "Crear Carpetas Basada en Rango" de Kutools para Excel, ahora puedes crear fácil y rápidamente carpetas a partir de una lista de Excel. Pero no solo crea carpetas básicas; Kutools también te permite crear estructuras complejas con subcarpetas multinivel de una sola vez. Solo unos pocos pasos simples pueden transformar datos de Excel en un sistema de carpetas organizado, aumentando significativamente tu productividad.
Después de instalar Kutools para Excel, haz clic en "Kutools Plus" > "Importar / Exportar" > "Crear Carpetas Basada en Rango" para abrir el cuadro de diálogo Crear Carpetas Basada en Rango:
- Selecciona los valores de las celdas en los que deseas crear carpetas;
- Luego, haz clic en el
botón para especificar la carpeta de destino donde deseas guardar las carpetas;
- Finalmente, haz clic en el botón Aceptar.
Resultado:
Kutools procesará la lista de tu hoja y creará una carpeta para cada entrada en el destino especificado. Navega hasta la carpeta de destino para ver el resultado. Ver captura de pantalla:
- Esta útil función también puede ayudarte a crear carpetas junto con sus subcarpetas según sea necesario. Para hacer esto, debes ingresar los nombres deseados de las carpetas y subcarpetas en las celdas, utilizando el signo de barra invertida (\) para separar cada nivel. El contenido de cada celda actuará como una guía para configurar la estructura deseada de carpetas y subcarpetas.
Luego, aplica la función "Crear Carpetas Basada en Rango", todas las carpetas junto con sus subcarpetas se crearán con éxito. Ver captura de pantalla: - Para aplicar esta función, descarga e instala Kutools para Excel.
Crear carpetas desde una lista usando código VBA
Usar código VBA en Excel puede transformar la tediosa tarea de crear carpetas desde una lista en un proceso rápido y automatizado. Esta sección te mostrará cómo aplicar código VBA para generar carpetas.
Paso 1: Abre el editor de módulos VBA y copia el código
- Mantén presionadas las teclas "ALT + F11" en Excel, y se abrirá la ventana "Microsoft Visual Basic para Aplicaciones".
- Haz clic en "Insertar" > "Módulo", y pega el siguiente código en la Ventana de Módulo.
Código VBA: Crear carpetas basadas en una lista de valores de celdaSub CreateFoldersFromSelection() 'Updateby Extendoffice Dim FolderPath As String Dim Cell As Range Dim SelectedRange As Range Dim FolderName As String On Error Resume Next Set SelectedRange = Application.InputBox("Select the range with folder names", "Kutools for Excel", Type:=8) If SelectedRange Is Nothing Then Exit Sub On Error GoTo 0 With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Select the destination Folder" .AllowMultiSelect = False If .Show <> -1 Then Exit Sub FolderPath = .SelectedItems(1) & "\" End With For Each Cell In SelectedRange FolderName = FolderPath & Cell.Value If Cell.Value <> "" And Not FolderExists(FolderName) Then MkDir FolderName End If Next Cell End Sub Function FolderExists(ByVal Path As String) As Boolean On Error Resume Next FolderExists = (GetAttr(Path) And vbDirectory) = vbDirectory On Error GoTo 0 End Function
Paso 2: Ejecuta el código
- Después de pegar este código, presiona la tecla F5 para ejecutarlo. En el cuadro de diálogo emergente, selecciona los valores de las celdas a partir de los cuales deseas crear carpetas. Luego, haz clic en Aceptar.
- Luego, en la siguiente ventana "Seleccionar la carpeta de destino", especifica la ruta de destino para exportar las carpetas creadas. Luego, haz clic en el botón Aceptar, ver captura de pantalla:
Resultado:
Después de ejecutar el código VBA, ve al directorio de destino para ver el resultado. Allí encontrarás las carpetas recién creadas, cada una correspondiente a un elemento de tu lista de Excel. Ver captura de pantalla:
- Si hay entradas duplicadas en las celdas, el código solo creará una carpeta.
- Si usas este código con frecuencia, considera guardar tu libro en el formato de "Libro habilitado para macros de Excel". Esta acción conserva el código dentro del libro, permitiéndote ejecutarlo directamente en el futuro sin necesidad de volver a escribir o importar el código.
Crear carpetas y subcarpetas basadas en valores de celda con código VBA
Ocasionalmente, podrías encontrarte en una situación en la que necesites generar no solo carpetas, sino también sus subcarpetas correspondientes, todo basado en los datos dentro de las celdas de Excel. Para lograr esta tarea, aquí te presentaré un código VBA.
Paso 1: Preparar los datos
Primero, deberías ingresar los datos como se muestra en la siguiente captura de pantalla, colocando los nombres de las carpetas principales en la primera columna y los nombres de las subcarpetas en la segunda columna.
Paso 2: Abre el editor de módulos VBA y copia el código
- Mantén presionadas las teclas "ALT + F11" en Excel, y se abrirá la ventana "Microsoft Visual Basic para Aplicaciones".
- Haz clic en "Insertar" > "Módulo", y pega el siguiente código en la Ventana de Módulo.
Código VBA: Crear carpetas y subcarpetas basadas en valores de celdaSub CreateFoldersAndSubfoldersWithUserInput() 'Updateby Extendoffice Dim Rng As Range Dim Cell As Range Dim basePath As String Dim fldrPicker As FileDialog Dim FolderPath As String, subfolderPath As String On Error Resume Next Set Rng = Application.InputBox("Select the range of cells (two columns: one is folder column, another s subfolder column):", "Kutools for Excel", Type:=8) If Rng Is Nothing Then Exit Sub On Error GoTo 0 Set fldrPicker = Application.FileDialog(msoFileDialogFolderPicker) With fldrPicker .Title = "Select the Base Folder Path" .AllowMultiSelect = False If .Show <> -1 Then Exit Sub basePath = .SelectedItems(1) End With If Right(basePath, 1) <> "\" Then basePath = basePath & "\" For Each Cell In Rng.Columns(1).Cells If Not Cell.Value = "" Then FolderPath = basePath & Cell.Value If Not FolderExists(FolderPath) Then MkDir FolderPath If Not Cell.Offset(0, 1).Value = "" Then subfolderPath = FolderPath & "\" & Cell.Offset(0, 1).Value If Not FolderExists(subfolderPath) Then MkDir subfolderPath End If End If Next Cell End Sub Function FolderExists(FolderPath As String) As Boolean On Error Resume Next FolderExists = (GetAttr(FolderPath) And vbDirectory) = vbDirectory On Error GoTo 0 End Function
Paso 3: Ejecuta el código
- Después de pegar este código, presiona la tecla F5 para ejecutarlo. En el cuadro de diálogo emergente, selecciona los valores de las celdas a partir de los cuales deseas crear carpetas. Luego, haz clic en Aceptar.
- En la siguiente ventana emergente, especifica la ruta de destino para exportar las carpetas creadas. Luego, haz clic en el botón Aceptar, ver captura de pantalla:
Resultado:
Después de ejecutar el código VBA, ve al directorio de destino para ver el resultado. Verás que las carpetas y sus respectivas subcarpetas, según lo dictado por los valores de las celdas, se han creado con éxito como se muestra en la siguiente captura de pantalla:
- Este código solo está disponible para crear las carpetas principales y sus subcarpetas de primer nivel.
- Si usas este código con frecuencia, considera guardar tu libro en el formato de "Libro habilitado para macros de Excel". Esta acción conserva el código dentro del libro, permitiéndote ejecutarlo directamente en el futuro sin necesidad de volver a escribir o importar el código.
Artículos relacionados:
- Listar todos los nombres de archivos de una carpeta y subcarpetas en una hoja de cálculo
- Si deseas generar una lista de nombres de archivos dentro de un directorio en una hoja de cálculo, puedes seguir los siguientes métodos para obtener rápidamente una lista de archivos de un directorio en la hoja de cálculo.
- Listar todas las carpetas y subcarpetas en Excel
- ¿Alguna vez has tenido problemas para listar todas las carpetas y subcarpetas de un directorio específico en una hoja de cálculo? En Excel, no hay una manera rápida y práctica de obtener el nombre de todas las carpetas en un directorio específico de una vez. Para resolver esta tarea, este artículo puede ayudarte.
- Copiar o mover archivos de una carpeta a otra basándose en una lista
- Si tienes una lista de nombres de archivos en una columna en una hoja de cálculo, y los archivos están ubicados en una carpeta en tu computadora. Pero ahora, necesitas mover o copiar estos archivos, cuyos nombres están listados en la hoja de cálculo, desde su carpeta original a otra, como se muestra en la siguiente captura de pantalla. ¿Cómo podrías completar esta tarea tan rápido como puedas en Excel?
- Renombrar múltiples archivos de una carpeta
- Quizás muchos de nosotros hemos sufrido con este problema: necesitamos renombrar múltiples archivos en una carpeta, y hacerlo uno por uno nos volvería locos si hay cientos o miles de archivos en esa carpeta. ¿Existen buenas funciones que podamos usar para manejar esta tarea?
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!