Imprimir página | Cerrar ventana

Guardar cada hoja en un libro nuevo

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86091
Fecha de impresión: 16/Abril/2024 a las 10:21


Tema: Guardar cada hoja en un libro nuevo
Publicado por: jfca283
Asunto: Guardar cada hoja en un libro nuevo
Fecha de publicación: 16/Agosto/2021 a las 03:28
Buenas,
Tengo un código que no puedo adaptar para que guarde cada hoja como un libro xlsx.

Sub MACRO1()

Dim ws As Worksheet
Dim ruta As String
Dim carpeta As FileDialog

Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub

salidas = carpeta.SelectedItems(1)

For Each ws In Application.ActiveWorkbook.Worksheets

ws.SaveAs salidas & "\" & ws.Name, FileFormat:=51

Next

End Sub


Ese código guarda varias veces el mismo archivo, completo, con los nombres de cada hoja.
Es decir, si tiene 10 hojas con nombres "1","2", "3"..."10", se guardarán los archivos xlsx "1.xlsx","2.xlsx", "3.xlsx", ...10.xlsx"
Sin embargo, yo quiero guardar solo la hoja "1" como el xlsx "1.xlsx", la hoja "2" como el xlsx "2.xlsx", y así...
No logro guardar cada hoja sin complejizar el código.
Se antemano, gracias por la ayuda.
Saludos



Respuestas:
Publicado por: jfca283
Fecha de publicación: 16/Agosto/2021 a las 04:02
Lo resolví así:

Sub MACRO1()

Dim ws As Worksheet
Dim ruta As String
Dim carpeta As FileDialog

Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub

salidas = carpeta.SelectedItems(1)

For Each ws In Application.ActiveWorkbook.Worksheets

Select Case ws.Name

Case Is =1,2,3,4,5,6,7,8,9,10
Sheets(ws.Name).Select
Sheets(ws.Name).Copy

ActiveWorkbook.SaveAs ruta & "\" & ws.Name, FileFormat:=51
ActiveWorkbook.Close

End Select


Next


End Sub




    



Imprimir página | Cerrar ventana