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 de Programar Excel
1