H o l a :
Avísame cualquier duda o detalle que encuentres en la macro y con gusto te ayudo a actualizarla.
Te anexo la macro
Private Sub CommandButton5_Click()
'Por experto excel dante
Application.ScreenUpdating = False
Set h2 = Sheets("Carga")
Set h3 = Sheets("recibo empleadosFijos y direct.")
Set h4 = Sheets("Formato")
'
fila = h3.[L3]
ruta = "C:\Documents and Settings\Administrador\Escritorio\Recibos de Pago\Empleados Fijos y Personal Directivo\"
'ruta = ThisWorkbook.Path & "\"
Do While h2.Cells(fila, "B") <> "" And h3.[g4] >= h3.[D2] And h3.[g4] < h3.[D3]
m = h3.[D2]
n = h3.[D3]
For i = m To n
Next
h4.Rows.Hidden = False
h4.Range("A:I").Clear
h4.DrawingObjects.Delete
h3.[g4] = h2.Cells(fila, "A")
'Aqui guarda recibo1 a PDF
APdf h3
'copia recibo 1
h3.Range("A7:I" & h3.Range("C" & Rows.Count).End(xlUp).Row).Copy
h4.Range("A" & 1).PasteSpecial Paste:=xlValues
h4.Range("A" & 1).PasteSpecial Paste:=xlFormats
h4.Range("A" & 2).PasteSpecial Paste:=xlPasteColumnWidths
CopiarImagen2 h3, h4, 3
'
If h2.Cells(fila + 1, "B") <> "" Then
h3.[g4] = h2.Cells(fila + 1, "A")
'Aqui guarda recibo2 a PDF
aPdf h3
'copia recibo 2
h3.Range("A7:I" & h3.Range("C" & Rows.Count).End(xlUp).Row).Copy
u3 = h4.Range("C" & Rows.Count).End(xlUp).Row + 4
h4.Range("A" & u3).PasteSpecial Paste:=xlValues
h4.Range("A" & u3).PasteSpecial Paste:=xlFormats
End If
'
u4 = h4.Range("C" & Rows.Count).End(xlUp).Row
For i = 15 To u4
If h4.Cells(i, "H") = 1 And h4.Cells(i, "I") = 1 Then
h4.Rows(i).Hidden = True
End If
Next
CopiarImagen2 h3, h4, u3 + 2
'Aqui imprime
With h4.PageSetup
.PrintArea = "A1:G" & h4.Range("C" & Rows.Count).End(xlUp).Row
.Orientation = xlPortrait
.FitToPagesWide = 1
.FitToPagesTall = 1
.LeftMargin = Application.InchesToPoints(0.590551181102362)
.RightMargin = Application.InchesToPoints(0.590551181102362)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
h4.PrintOut Copies:=1, Collate:=True
'
fila = fila + 2
Loop
MsgBox "Impresión realizada y el Respaldo del recibo fue generado con exito", vbInformation, "IMPRIMIR RECIBO"
End Sub
Sub CopiarImagen2(h3, h4, u3)
'copiar imagenes en el recibo
h3.Shapes("Imagen 1").Copy
h4.Select
h4.Paste
Selection.Top = h4.Range("B" & u3).Top
Selection.Left = h4.Range("B" & u3).Left + 20
h3.Shapes("Imagen 2").Copy
h4.Paste
Selection.Top = h4.Range("G" & u3).Top
Selection.Left = h4.Range("G" & u3).Left + 5
End Sub
Sub aPdf(h3)
'Aqui guarda a PDF
ruta = "C:\Documents and Settings\Administrador\Escritorio\Recibos de Pago\Empleados Fijos y Personal Directivo\"
h3.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & h3.Range("C17") & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=2, To:=2, OpenAfterPublish:=False
End Sub