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

1 respuesta

1
Respuesta de
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
jcgonzalez3165@gmail.com
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
Hola lulula, tienes que quitarle: Private Sub Workbook_BeforePrint(Cancel As Boolean)
jcgonzalez3165@gmail.com
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 un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Microsoft Excel o hacer tu propia pregunta: