Macro especificaciones de impresión

Buen día. Quiero saber cómo establecer las especificaciones de impresión desde una macro. Por ejemplo, que imprima siempre en borrador, en ambas caras, desde la última hoja, etc.
Ya intenté grabar la rutina, pero sólo aparece ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Gracias.

1 Respuesta

Respuesta
1
Posibles instrucciones:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet
on Error Resume Next
.PageSetup.LeftFooter = " &F &A" 'works in print preview
.PageSetup.LeftFooter = ThisWorkbook.FullName & " &A"
.PageSetup.RightFooter = "&8 &D &T"
If LCase(ActiveSheet.Name) = "sheet28" Then
.PageSetup.PrintArea = .Cells(1, 1).Resize( _
.Range("A" & Rows.Count).End(xlUp).Row, Columns.count).Address
End If
End With
[email protected]
Lo intenté pero algo debo estar obviando. Lo que hice fue:
Puse a grabar sólo para que me generara el código de macro, y luego me fui al paso a paso para copiar tu texto. Cuando lo pruebo me marca: Sub macro1() en amarillo y me dice que se esperaba un End Sub, y el único que aparece está al final de la instrucción. ¿Qué hice mal?
Pon el código.
Sub MACRO2()
'
' Macro2 Macro
' Macro grabada el 19/02/2009
'
' Acceso directo: CTRL+q
'
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet
On Error Resume Next
.PageSetup.LeftFooter = " &F &A" 'works in print preview
.PageSetup.LeftFooter = ThisWorkbook.FullName & " &A"
.PageSetup.RightFooter = "&8 &D &T"
If LCase(ActiveSheet.Name) = "sheet28" Then
.PageSetup.PrintArea = .Cells(1, 1).Resize( _
.Range("A" & Rows.Count).End(xlUp).Row, Columns.Count).Address
End If
End With
End Sub
tienes que quitarle: Private Sub Workbook_BeforePrint(Cancel As Boolean)
[email protected]
OK, ya no se queda... ¿PERO cómo hago para que cambie las propiedades de impresión? Fíjate que usualmente tengo que imprima en calidad estándar pero siempre que se imprima esa hoja debe ir en borrador y duplex. ¿Cómo hago eso?
El encabezado y pie de página ya lo había programado, pero es este simple detalle, que cuando le dé clic al ícono que puse para imprimir la "hoja 1", lo haga en impresión borrador y no de alta calidad.
Gracias por la paciencia!
Hola, fíjate que traveseando un poco más no me había percatado que en configurar página está el botón de opciones de impresión! :) Horas después, lo encontré y resultó.
No sé si a eso te referías pero es que yo no entendía cómo funcionaba o de dónde salía.
Este es el código:
Sub Macro7()
'
' Macro7 Macro
' Macro grabada el 19/02/2009
' Acceso directo: Ctrl+Mayús+Z
'
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$A$1:$E$4"
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = "Libro1 &A"
.CenterFooter = ""
.RightFooter = "&8 &D &T"
.LeftMargin = Application.InchesToPoints(0.28740157480315)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.393700787401575)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = -2
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
Muchas gracias por la ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas