publicado el 13 de marzo1 año Hola a todos! Quisiera me ayudaran por favor con la ejecución de una macro . Me funciona perfecta pero necesito saber como hago para que solo me guarde la hoja que necesito, en si, la hoja 10 pero me guarda los nuevos libros con todas las hojas. Sub control2558() Application.ScreenUpdating = False Dim I As Integer I = 4 While Hoja10.Cells(I, 102) <> "" Hoja10.Cells(6, 82) = Hoja10.Cells(I, 102) Hoja10.Select Dim NombreArchivo, RutaArchivo As String NombreArchivo = "Hoja Control " & Hoja10.Cells(I, 102) RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm" ActiveWorkbook.SaveAs Filename:=RutaArchivo Hoja10.Select ' ActiveSheet.PrintOut Copies:=1, Collate:=False I = I + 1 Wend MsgBox ("Proceso generado con éxito") Application.ScreenUpdating = True End Sub Así muestra el Visual Basic el modulo: Gracias
publicado el 13 de marzo1 año Sin libro de ejemplo y si es que lo entendí bien podría recomendar aplicar a tu macro los siguientes cambios: Set NuevoLibro = Workbooks.Add: Este comando crea un nuevo libro de Excel y lo asigna a la variable NuevoLibro. Hoja10.Copy Before:=NuevoLibro.Sheets(1): Este comando copia la Hoja10 al nuevo libro que se acaba de crear. La hoja se coloca antes de la primera hoja del nuevo libro. NuevoLibro.SaveAs Filename:=RutaArchivo: Este comando guarda el nuevo libro (que ahora tiene solo la Hoja10) en la ubicación especificada por RutaArchivo. NuevoLibro.Close SaveChanges:=False: Este comando cierra el nuevo libro. El argumento SaveChanges:=False significa que no se guardarán los cambios si se realizan cambios adicionales al libro después de guardar y antes de cerrar. Debe quedarte algo así: Sub control2558() Application.ScreenUpdating = False Dim I As Integer I = 4 While Hoja10.Cells(I, 102) <> "" Hoja10.Cells(6, 82) = Hoja10.Cells(I, 102) Dim NombreArchivo, RutaArchivo As String NombreArchivo = "Hoja Control " & Hoja10.Cells(I, 102) RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm" Dim NuevoLibro As Workbook Set NuevoLibro = Workbooks.Add Hoja10.Copy Before:=NuevoLibro.Sheets(1) NuevoLibro.SaveAs Filename:=RutaArchivo NuevoLibro.Close SaveChanges:=False I = I + 1 Wend MsgBox ("Proceso generado con éxito") Application.ScreenUpdating = True End Sub Espero que te funcione como esperas.
Hola a todos! Quisiera me ayudaran por favor con la ejecución de una macro . Me funciona perfecta pero necesito saber como hago para que solo me guarde la hoja que necesito, en si, la hoja 10 pero me guarda los nuevos libros con todas las hojas.
Sub control2558()
Application.ScreenUpdating = False
Dim I As Integer
I = 4
While Hoja10.Cells(I, 102) <> ""
Hoja10.Cells(6, 82) = Hoja10.Cells(I, 102)
Hoja10.Select
Dim NombreArchivo, RutaArchivo As String
NombreArchivo = "Hoja Control " & Hoja10.Cells(I, 102)
RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm"
ActiveWorkbook.SaveAs Filename:=RutaArchivo
Hoja10.Select
' ActiveSheet.PrintOut Copies:=1, Collate:=False
I = I + 1
Wend
MsgBox ("Proceso generado con éxito")
Application.ScreenUpdating = True
End Sub
Así muestra el Visual Basic el modulo:
Gracias