Start » VBA-Ejemplos » Macro VBA para crear archivos de cada hoja Excel

Macro VBA para crear archivos de cada hoja Excel

Con un mínimo de código vamos a crear archivos independientes de las hojas de un libro. Un ejemplo sería un libro con 124 hojas, una hoja por empleado, y ahora queremos separar las hojas de cada colega y crear libros independientes.

Procedimiento

Empezamos con el libro de una o varias hojas. Luego vamos a crear un módulo dentro de este libro. En este módulo escribimos el código.

Crear el módulo

Entra a Herramientas - Macros - Editor VBA. A la izquierda ves (si no lo ves CTRL+R) algo como "ProyectoVBA (Tu libro). Marca ese proyecto. Insertar - Módulo.

Doble click en el módulo nuevo, y a la derecha sale un espacio blanco, es para el código. Herramientas - Referencias. Marca Microsoft ActiveX DataObjects x.x Library.
Ahora cierras el editor VBA, vuelves a Excel. Guardamos el libro.

Código

Sub Crear_archivos_de_hojas()

Dim strHoja, strStartHoja, strRuta As String
Dim i As Integer

Application.ScreenUpdating = False
strStartHoja = ActiveCell.Worksheet.Name

'bucle todas hojas
For i = 1 To Sheets.Count

'copia la hoja a libro nuevo
Sheets(i).Activate
strHoja = ActiveCell.Worksheet.Name
Sheets(strHoja).Copy

'donde guardar los archivos creados
strRuta = "C:\excel\vba\ejemplos"

'guarda el libro nuevo
ActiveWorkbook.SaveAs Filename:=strRuta & "\" & strHoja, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close Savechanges:=True

'repetir bucle'
Next

Sheets(strStartHoja).Activate
Application.ScreenUpdating = True

End Sub