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 SubBuenos 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
