Macro que guarde más de una hoja activa
Recurro a su expertiz para ver si es factible que una macro guarde más de una hoja de un libro excel.
Resulta que tengo un libro con 5 hojas de calculo, y necesito que una vez que ejecute la macro el resultado lo pueda guardar como libro excel.xls SOLO La hoja llamada"R-HSE-EMCS" y otro "RESUMEN"
Por internet encontré una que funcional muy bien pero solo para la hoja que este activa, igual la comparto.
Me mantengo atento a sus gentiles aportes.
Gracias.
Option Explicit ' Sub PLANTILLAGuardarHojaComoArchivoNuevo() ' 'Declaramos las variables. Dim VentanasProtegidas As Boolean Dim EstructuraProtegida As Boolean Dim NombreHoja As String Dim Confirmacion As String Dim NombreArchivo As String Dim GuardarComo As Variant Dim Extension As String ' 'En caso de error. On Error GoTo ErrorHandler ' 'Validamos si la ventana o la estructura del archivo están protegidos. VentanasProtegidas = ActiveWorkbook.ProtectWindows EstructuraProtegida = ActiveWorkbook.ProtectStructure ' 'En caso de estar protegidas mostramos mensaje. If VentanasProtegidas = True Or EstructuraProtegida = True Then MsgBox "No se puede ejecutar el comando cuando la estructura del archivo está protegida.", _ vbExclamation, "Consolidado" Else ' 'Copiamos la hoja y guardamos. NombreHoja = ActiveSheet.Name Confirmacion = MsgBox("Desea guardar la hoja '" & NombreHoja & "' como archivo nuevo?", _ vbQuestion + vbYesNo, "Consolidado") Application.ScreenUpdating = False If Confirmacion = vbYes Then ActiveSheet.Select ActiveSheet.Copy NombreArchivo = ActiveWorkbook.Name GuardarComo = Application.GetSaveAsFilename(InitialFileName:=NombreHoja, _ fileFilter:="Libro de Excel(*.xlsx), *.xlsx, Libro de Excel habilitado para macros(*.xlsm), *.xlsm, Libro de Excel 97-2003(*.xls), *.xls,CSV (delimitado por comas)(*.csv),*.csv", _ Title:="Consolidado - guadar hoja activa como archivo nuevo.") If GuardarComo = False Then Workbooks(NombreArchivo).Close SaveChanges:=False Else With Application.WorksheetFunction Extension = .Trim(Right(.Substitute(GuardarComo, ".", .Rept(" ", 500)), 500)) End With Select Case Extension Case Is = "xlsx" ActiveWorkbook.SaveAs GuardarComo Case Is = "xlsm" ActiveWorkbook.SaveAs GuardarComo, xlOpenXMLWorkbookMacroEnabled Case Is = "xls" ActiveWorkbook.SaveAs GuardarComo, xlExcel8 Case Is = "csv" ActiveWorkbook.SaveAs GuardarComo, xlCSV Case Else ActiveWorkbook.SaveAs GuardarComo End Select End If Else End If ' End If ' Exit Sub ' 'En caso de error mostramos un mensaje. ErrorHandler: MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "Consolidado" Workbooks(NombreArchivo).Close SaveChanges:=False ' End Sub
3 Respuestas
Respuesta de Elsa Matilde
2
Respuesta de Erick Leonel Mariano Malagon
1
Respuesta de Programar Excel
1