Macro para crear un nuevo archivo de un archivo existente con un botón
Dante otra vez pidiendo tu apoyo
Te comento mi solicitud el archivo que has venido apoyándome tiene un botón que se llama crear archivo, el objetivo de este botón es crear un archivo nuevo en formato pdf, esta hoja tiene varias macros, las cuales son para ocultar y mostrar filas, ya hay una macro iniciada pero me da algunos errores y el archivo nuevo lo crea en formato excel y como el archivo tiene varias formulas de subtotales da error al final, por lo que quería ver si puedes revisarla.

Este es el código que tiene la hoja de créditos el cual al momento de presionar el botón ocultar filas únicamente deja las filas que en realidad se necesitan y es así como esta la imagen que se necesita que se cree el nuevo archivo en pdf, adjunto el código
Sub Crear_Archivo()
Dim fila_ini As Double, col1 As String, c As Range
Dim l2 As Workbook, h2 As Worksheet, i As Long
Dim l1 As Workbook, h1 As Worksheet
Application.ScreenUpdating = False
Application.CopyObjectsWithCells = False
Application.DisplayAlerts = False
Set l1 = ThisWorkbook
Set h1 = ActiveSheet
Call desproteger
fila_ini = 7
col1 = "J"
h1.Cells.EntireRow.Hidden = False
h1.Copy
Set l2 = ActiveWorkbook
Set h2 = l2.Sheets(1)
'For Each c In h2.UsedRange
'c.Value = c.Value
'Next
For i = h2.Range("J" & Rows.Count).End(xlUp).Row To fila_ini Step -1
If h2.Cells(i, col1) = 0 Then
h2.Cells(i, col1).EntireRow.Delete
End If
Next i
h1.Range("A1:I2").Copy h2.Range("A1")
'h2.Range("A1").PasteSpecial xlPasteAll
h2.Protect ("regional2018")
l2.SaveAs ThisWorkbook.Path & "\" & "Analisis_de_Creditos.xlsx"
l2.Close False
Application.ScreenUpdating = True
Application.CopyObjectsWithCells = True
Call proteger
MsgBox "Hoja guardada en un nuevo archivo."
End Sub
'
Sub mostrar_ocultar()
desproteger
fila_ini = 7
col1 = "J"
'
For i = fila_ini To Range("J" & Rows.Count).End(xlUp).Row
If Cells(i, col1) > 0 Then
Cells(i, col1).EntireRow.Hidden = False
Else
Cells(i, col1).EntireRow.Hidden = True
End If
Next i
proteger
End Sub
Sub mostrar_FILAS()
desproteger
fila_ini = 1
col1 = "J"
'
For i = fila_ini To 200
Cells(i, col1).EntireRow.Hidden = False
Next i
proteger
End Sub
Sub proteger()
Worksheets(3).Select
ActiveSheet.Protect ("regional2018")
End Sub
Sub desproteger()
Worksheets(3).Select
ActiveSheet.Unprotect ("regional2018")
End SubPara el caso de los débitos necesitamos lo mismo, para lo cual adjuntamos imagen sobre el boton de crear archivo, es decir que al momento de crear el nuevo archivo sea en pdf y se vea como en imagen

Al igual adjunto codigo el cual me da problemas para crearlo y lo hace en Excel
Y esta el la ultima hoja que tambien necesito crear un archivo nuevo en pdf

No me deja pegar los demás códigos por el exceso de los caracteres, pero puedo agregarlo despues, muy agradecida


