Macro para imprimir a dos caras VBA

Private Sub Imprimirparte()
Dim objExcel As Application
Dim RutaArchivo As String
Dim Texto As String
Dim Fila As Integer
Set objExcel = CreateObject("Excel.Application")
With objExcel
    RutaArchivo = ThisWorkbook.Path & "\parte_tmp.xlsx"
    If IsFileOpen(RutaArchivo) Then
            MsgBox "El libro debe estar cerrado para proceder."
            Exit Sub
    Else
        '
        With .Workbooks.Open(RutaArchivo)
       .Worksheets("Hoja1").Range("parte").ClearContents
       .Worksheets("Hoja2").Range("apar").ClearContents
        Fila = 18
        Do While .Worksheets("Hoja1").Cells(18, 1) <> ""
            Fila = Fila + 1
        Loop
final = Fila
                .Worksheets("Hoja1").Range("D2").Value = Me.cbo_not
                .Worksheets("Hoja2").Range("X3").Value = Me.cbo_not
                .Worksheets("Hoja1").Range("C3").Value = Me.txt_descrip
                .Worksheets("Hoja1").Range("G2").Value = Me.txt_fecha
                .Worksheets("Hoja1").Range("L2").Value = Me.txt_equipo
                .Worksheets("Hoja1").Range("B8").Value = Me.eje1
                .Worksheets("Hoja1").Range("B10").Value = Me.eje2
                .Worksheets("Hoja1").Range("B12").Value = Me.eje3
                .Worksheets("Hoja2").Range("X5").Value = Me.txt_fecha
                .Worksheets("Hoja2").Range("X2").Value = Me.txt_equipo
                .Worksheets("Hoja2").Range("B20").Value = Me.eje1
            final = 42
'
           For J = 0 To Me.ListBox2.ListCount - 1
                .Worksheets("Hoja1").Cells(final, "H") = Me.ListBox2.List(J, 0)    ' se tiene que grabar en la celda N42
                .Worksheets("Hoja1").Cells(final, "N") = Me.ListBox2.List(J, 1)    ' se tiene que grabar en la celda P42
                final = final + 1
            Next
            final = 8
            For i = 0 To Me.ListBox1.ListCount - 1
                .Worksheets("Hoja2").Cells(final, "C") = Me.ListBox1.List(i, 1) ' se tiene que grabar en la celda D18
                .Worksheets("Hoja2").Cells(final, "D") = Me.ListBox1.List(i, 2) ' se tiene que grabar en la celda F18
                final = final + 1
            Next
'Establecer área de impresión y enviar al impresor.
.Worksheets("Hoja1").PageSetup.PrintArea = "parte"
.Worksheets("Hoja1").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
.Worksheets("Hoja2").PageSetup.PrintArea = "apar"
.Worksheets("Hoja2").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
                .Close SaveChanges:=True
            End With
        End If
    .Quit
End With
End Sub

Buenos días ,

Con el código que adjunto imprimo los datos de un userform en dos hojas diferentes.

Necesitaría que se imprimieran en las misma hoja siendo la hoja 1 en vertical y la hoja 2 en horizontal.

1 respuesta

Respuesta
1

¡Gracias! 

Use activeworkbook.printout , pero en vez de imprimir la hoja nueva me imprime el excel en el que tengo los datos.

supongo que falta de poner algo¡¡??

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas