Inicio » 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