Guardar cada hoja de excel por separado con el nombre de la hoja

23/02/2008 - 00:36 por Halixman | Informe spam
Tengo un libro con 50 hojas. Quiero guardar cada hoja de excel por separado
en un nuevo archivo. Cada nuevo archivo.xls deberá 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.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
23/02/2008 - 20:55 | Informe spam
hola, 'anonimo/a' !

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.
Respuesta Responder a este mensaje
#2 Halixman
24/02/2008 - 01:47 | Informe spam
Ok. Funcionó. El problema es que está salvando como xlsx, pero mis clientes
tienen Office 2003, así que quisiera que grabe como xls y no como xlsx. Ya
proble poniendo en las opciones de guardar por defecto xls, pero no funciona.

Habría una forma de que el macro fuerce a que se grabe como xls?... no
sé... como Fileformat=xls... donde iría esta línea?
Respuesta Responder a este mensaje
#3 Héctor Miguel
24/02/2008 - 02:12 | Informe spam
hola, (...) ???

... 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

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Elmer
24/04/2008 - 19:37 | Informe spam
Si cumple con su función, separa las hojas, las guarda según el nombre de
cada hoja.

Pero el problema es que hay celdas conteniendo mucho texto y las copia solo
con 255 caracteres como máximo.
Respuesta Responder a este mensaje
#5 Elmer
24/04/2008 - 19:43 | Informe spam
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.






Si cumple con su función, separa las hojas, las guarda según el nombre de
cada hoja.

Pero el problema es que hay celdas conteniendo mucho texto y las copia solo
con 255 caracteres como máximo.

Como lo puedo solucionar???
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida