Por ejemplo: Si la hoja 40 se llama Costos, quiero que se genere el archivo
Costos.xls, pero ese archivo solo contenga esa hoja.
> Tengo un libro con 50 hojas. Quiero guardar cada hoja de excel por separado en un nuevo archivo.
> Cada nuevo archivo.xls debera tener como nombre el nombre de la hoja. Por ejemplo:
> Si la hoja 40 se llama Costos, quiero que se genere el archivo Costos.xls, pero ese archivo solo contenga esa hoja.
suponiendo que no habra problemas de nombres duplicados entre las hojas y/o libros ya existentes -?-
y asumiendo que cada nueva hoja-libro se puede guardar en el mismo directorio que el original -?-
prueba con una macro +/- como la siguiente (y la ejecutas desde tu libro con las 50 -o mas- hojas)...
Sub Separa_hojas()
Application.ScreenUpdating = False
Dim n As Integer
For n = 1 To Worksheets.Count
Worksheets(n).Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
ActiveWorkbook.Close
Next
End Sub
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
> ... El problema es que esta salvando como xlsx, pero mis clientes tienen Office 2003
> asi que quisiera que grabe como xls y no como xlsx. Ya proble poniendo en las opciones de guardar por defecto xls, pero no funciona.
> Habria una forma de que el macro fuerce a que se grabe como xls?... no se... como Fileformat=xls... donde iria esta linea?
si estas usando la version 2007 para separar las hojas...
cambia la instruccion con el SaveAs e incluye el formato de compatibilidad con las versiones 97 a 2003
de:
ActiveWorkbook.SaveAs ActiveSheet.Name
a:
ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name, FileFormat:=xlExcel8
Pero el problema es que hay celdas conteniendo mucho texto y las copia solo
con 255 caracteres como máximo.
Si cumple con su función, separa las hojas, las guarda según el nombre de
cada hoja.
Como lo puedo solucionar???
> Si cumple con su funcion, separa las hojas, las guarda segun el nombre de cada hoja.
> Pero el problema es que hay celdas conteniendo mucho texto y las copia solo con 255 caracteres como maximo.
al copiar hojas entre libros, las celdas con mas de 255 caracteres pasaran TRUNCADAS :((
la unica solucion (hasta donde se) es...
-> seleccionar TODAS las celdas de la hoja original
-> hacer un copy y...
-> pegar (p.e. todo, o solo los valores, o ???) a la hoja nueva
el haber copiado la hoja te preserva los formatos y demas monerias que hubieras personalizado
saludos,
hector.
p.d. revisa:
XL2000: Error de "255 caracteres de celda" cuando el error copia hoja de calculo
http://tinyurl.com/4gbmy (traduccion automatica al espanol)
XL2000: "255 Characters in Cell" Error When Copying Worksheet
http://tinyurl.com/5upbf (version original -ingles-)