xltoday.net

EXCEL 2007 TABLAS Y GRAFICOS


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

Ejecutar macro

Para ejecutar esta macro entras a Herramientas - Macros. Allí encontrarás la macro "Conectar_Excel_ADO". Marca esta, y "Ejecutar".

Recuerda que tienes que adaptar la ruta donde guardar los archivos nuevos (strRuta).