Macro para Dividir Hojas de Excel en varios Archivos

¿Necesitas separar las hojas de un archivo Excel en archivos individuales? Con esta macro para Dividir Hojas de Excel en varios Archivos, puedes dividir automáticamente un archivo en múltiples archivos, uno por cada hoja, en segundos. Además, cada archivo tendrá un nombre único basado en el nombre de la hoja y la hora de creación, lo que facilita su identificación posterior.
En este artículo, te explicaremos paso a paso cómo implementar esta macro, proporcionaremos el código completo y archivo descargable. Además ofreceremos consejos prácticos para que obtengas los mejores resultados.
Beneficios de Usar esta Macro
Te brindo algunas de las características y beneficios por las que esta macro será tu mejor aliada:
- Ahorra tiempo: Automatiza el proceso de división de hojas en archivos individuales.
- Nombres únicos: Crea archivos con nombres basados en el nombre de la hoja y la hora de creación.
- Compatible con cualquier formato: Funciona con archivos .xls y .xlsx.
- Fácil de usar: Solo necesitas configurar unos pocos parámetros para empezar.
Cómo Funciona la Macro para Dividir Hojas de Excel en varios Archivos
La macro para Dividir Hojas de Excel en varios Archivos, antes de ejecutarse valida que tenga los datos necesarios en la hoja "Datos Macro":
También puedes leer
- Ruta del archivo (Celda B4): Indica la ubicación donde está el archivo Excel original.
- Nombre del archivo (Celda B6): Especifica el nombre del archivo que deseas dividir.
En caso que la carpeta o archivo no exista mostrara un mensaje de error. Así mismo sino se ingresa el nombre del archivo con la extensión también mostrara un error y la macro no se ejecuta.
Una vez realizada la validación previa de los datos de ubicación y nombre del archivo, la macro abrirá el archivo Excel y recorrerá cada hoja del libro para crear un archivo individual por cada una. Estos archivos se guardarán en la misma carpeta, utilizando el nombre de cada hoja seguido de la hora de ejecución. Al finalizar, la macro mostrará un mensaje indicando la cantidad de archivos creados.


Código VBA MACRO para Dividir Hojas de Excel en varios Archivos
Sub DividirArchivoPorHojas()
Dim wsDatos As Worksheet, wbFuente As Workbook
Dim rutaArchivo As String, nombreArchivo As String, rutaCompleta As String
Dim hoja As Worksheet
Dim horaCreacion As String
Dim nuevoNombre As String
Dim rutaSalida As String
Dim numHojas As Long
'Configuración para velocidad
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
'Referencia a hoja de datos
Set wsDatos = ThisWorkbook.Sheets("Datos Macro")
'Validar celdas B4 y B6
If wsDatos.Range("B4").Value = "" Or wsDatos.Range("B6").Value = "" Then
MsgBox "Debe completar B4 (Ruta) y B6 (Nombre del archivo).", vbExclamation
GoTo Finalizar
End If
'Obtener ruta y nombre del archivo
rutaArchivo = wsDatos.Range("B4").Value
nombreArchivo = wsDatos.Range("B6").Value
'Asegurar que la ruta termine con \
If Right(rutaArchivo, 1) <> "\" Then rutaArchivo = rutaArchivo & "\"
rutaCompleta = rutaArchivo & nombreArchivo
'Validar que el archivo exista
If Dir(rutaCompleta) = "" Then
MsgBox "El archivo '" & nombreArchivo & "' no existe en la ruta indicada.", vbCritical
GoTo Finalizar
End If
'Abrir archivo fuente
Set wbFuente = Workbooks.Open(rutaCompleta)
'numeros de hojas
numHojas = wbFuente.Sheets.Count
'Crear archivos por hoja
For Each hoja In wbFuente.Sheets
'Generar nombre único: NombreHoja_HH-MM-SS.xlsx
horaCreacion = Format(Now, "HH-MM-SS")
nuevoNombre = hoja.Name & "_" & horaCreacion & ".xlsx"
rutaSalida = rutaArchivo & nuevoNombre
'Copiar hoja a nuevo libro
hoja.Copy
With ActiveWorkbook
.SaveAs fileName:=rutaSalida, FileFormat:=xlOpenXMLWorkbook
.Close False
End With
Next hoja
'Cerrar archivo fuente sin guardar
wbFuente.Close False
MsgBox "Proceso completado: Se crearon " & numHojas & " archivos.", vbInformation
Finalizar:
'Restaurar configuración
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
End Sub
Descargar Macro para Dividir Hojas de Excel en varios Archivos
Les brindo mi archivo configurado con la macro y el botón para que puedan probar. Solo deben colocar los datos necesarios del archivo.
El archivo Excel macro es creado por mi, solo contiene el código mostrado y es totalmente seguro, libre de virus.
También puedes leer
Consejos Adicionales
- Organiza tus archivos: Mantén todos los archivos en una sola carpeta para evitar confusiones.
- Verifica los nombres de las hojas: Asegúrate de que los nombres de las hojas no contengan caracteres especiales.
- Divide archivos grandes: Si tienes muchas hojas, considera dividir el proceso en grupos más pequeños.
Preguntas Frecuentes (FAQ)
¿Qué pasa si el archivo fuente no existe en la ruta indicada?
La macro mostrará un mensaje de error indicando que el archivo no fue encontrado.
¿Puedo cambiar el formato de los archivos creados?
Sí, puedes modificar el código para guardar los archivos en otros formatos, como .csv.
¿Se pueden personalizar los nombres de los archivos?
Sí, puedes ajustar el código para incluir prefijos, sufijos o fechas personalizadas.
¿Dónde se guardan los archivos creados?
Los archivos creados se guardan en la misma ruta donde esta el archivo original.
También puedes leer
Conclusión:
Con esta macro VBA, puedes dividir un archivo Excel en múltiples archivos individuales en minutos. ¡Descarga el archivo, configura los parámetros y empieza a ahorrar tiempo hoy mismo!
Deja una respuesta
Te Puede Interesar