Macro para Dividir Hojas de Excel en varios Archivos

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.

🔎 Índice de contenidos
  1. Beneficios de Usar esta Macro
  2. Cómo Funciona la Macro para Dividir Hojas de Excel en varios Archivos
  3. Código VBA MACRO para Dividir Hojas de Excel en varios Archivos
  4. Descargar Macro para Dividir Hojas de Excel en varios Archivos
  5. Consejos Adicionales
  6. Preguntas Frecuentes (FAQ)
    1. ¿Qué pasa si el archivo fuente no existe en la ruta indicada?
    2. ¿Puedo cambiar el formato de los archivos creados?
    3. ¿Se pueden personalizar los nombres de los archivos?
    4. ¿Dónde se guardan los archivos creados?
  7. Conclusión:

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 leerGenerador-de-licencias-eset-nod32Generador de Licencias Eset Nod32 Gratis
  1. Ruta del archivo (Celda B4): Indica la ubicación donde está el archivo Excel original.
  2. 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.

Imagen Macro para Dividir Hojas de Excel en varios Archivos.
Resultado macro Dividir Hojas de Excel en varios Archivos

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 leerGenerador de licencias Eset Smart PremiumGenerador de licencias ESET Smart Security Premium 2025

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 leerQué es ESET LIVEGRIDESET LiveGrid

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!

Te Puede Interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir