¿Se puede crear una macro para imprimir dos veces la misma página de excel en una hoja?

Amor, envié a su correo el archivo para explicarte mejor, lo que necesito es imprimir la hoja de los recibos de pago obreros fijos y obreros contratados, pero que salgan dos veces el mismo recibo en una hoja pdf como esta en el archivo adjunto pdf yo estuve probando cosas con pdf creator y ni supe como fue que saque el archivo que te adjunte pdf con los dos recibos, lo que quisiera es un botón si se pudiera que hiciera eso que generara los recibos dos veces en una misma página un poco más grande que esos, es decir que abarcaran una hoja tamaño carta, y poco margen 1,5 cm de margen algo así, para que al imprimir se vean bien los 2 recibos de pago en una hoja.

1 Respuesta

Respuesta
1

Si el tamaño de los 2 recibos excede el tamaño de la hoja, ¿entonces la hoja deberá ajustarse (reducirse) para que los 2 recibos quepan en una hoja?

si los dos recibos de pago se ajustan para que quepan dos por hoja en orientación vertical caben perfectamente, luego de imprimir los recortan y recursos humanos entrega uno al trabajador.

Hoja tamaño carta, lo importantes es que se lean bien los montos y asignaciones y deducciones es decir que quede legible al imprimir, se puede reducir el margen a lo mínimo, 1cm de ser necesario.

Te anexo la macro para imprimir 2 recibos en una hoja. Lo que hace la macro es enviar el recibo de la hoja "Recibo Obreros Contratados" y lo pone 2 veces en la hoja "Formato", y por último, imprime la hoja "Formato".

Private Sub CommandButton4_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Recibo Obreros Contratados")
    Set h2 = Sheets("Formato")
    h2.Cells.Clear
    h2.DrawingObjects.Delete
    '
    h1.Range("A7:H" & h1.Range("C" & Rows.Count).End(xlUp).Row).Copy
    h2.Range("A" & 1).PasteSpecial Paste:=xlValues
    h2.Range("A" & 1).PasteSpecial Paste:=xlFormats
    u2 = h2.Range("C" & Rows.Count).End(xlUp).Row + 2
    h2.Range("A" & u2).PasteSpecial Paste:=xlValues
    h2.Range("A" & u2).PasteSpecial Paste:=xlFormats
    h2.Range("A" & 2).PasteSpecial Paste:=xlPasteColumnWidths
    '
    CopiarImagen h1, h2, 3
    CopiarImagen h1, h2, u2 - 1
    '
    With h2.PageSetup
        .PrintArea = "A1:G" & h2.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.590551181102362)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
    End With
    '
    h2.PrintOut Copies:=1, Collate:=True
    h1.Select
    MsgBox "Impresión realizada", vbInformation, "IMPRIMIR RECIBO"
End Sub
'
Sub CopiarImagen(h1, h2, u2)
'Por.Dante Amor
    h1.Shapes("Imagen 1").Copy
    h2.Select
    h2.Paste
    Selection.Top = Range("B" & u2).Top
    Selection.Left = Range("B" & u2).Left + 20
    h1.Shapes("Imagen 2").Copy
    h2.Paste
    Selection.Top = Range("G" & u2).Top
    Selection.Left = Range("G" & u2).Left + 5
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas