Esta macro activa las tres primeras hojas y fija el área de impresión en el rango seleccionado, de esta forma para un conjunto de hojas no tendríamos que estar seleccionando cada una de ellas para fijarlas, si en todas es es igual podríamos usarla para imprimir el libro de Excel de una forma rápida.
Sub Area_Impresion()
‘ Seleccionar Áreas
Dim i As Integer
For i = 1 To 3
Sheets(i).Activate
Range(«B5:D10,B13:D20»).Select
ActiveSheet.PageSetup.PrintArea = «$B$5:$D$10,$B$13:$D$20»
Next i
‘ Imprimir las Áreas
ActiveWorkbook.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
End Sub
y ¿si mi rango es otro distinto?, ¿cómo podría realizarlo con X rango?… que sea desconocido, suponiendo que tengo una hoja y seleciono con el click para luego imprimir con un botón
Este ejemplo es útil si el rango a imprimir es siempre el mismo y se repite en las hojas, tan solo modifica las celdas a imprimir del código:
Range(«B5:D10,B13:D20»).Select
Esto no parece correcto, pues el rango para el área de impresión se determina en la fórmula: ActiveSheet.PageSetup.PrintArea = “$B$5:$D$10,$B$13:$D$20”; y no en la anterior, que es solo la selección de un rango.
La pregunta es si se puede escribir el área de impresión con variables y no con una linea de texto «…»
Si aprendo cómo, actualizaré mi comentario.
Saludos!
Hola, gracias por seguir el blog.
Es cierto que la parte de código Range(«B5:D10,B13:D20»).Select , selecciona las celdas, está añadido sólo para mostrar el rango seleccionado en la impresión a modo informativo, lo puedes quitar. Lo suelo poner por si se ejecuta la macro paso a paso «F8», a veces ayuda a entenderla.
Se puede escribir el área de impresión utilizando variables, es lo habitual, este ejemplo es sólo un ejemplo sencillo.
Puedes echar un vistazo al post https://exceltrucos.com/2016/01/12/comparar-listados/ , en este código puedes ver cómo asignar a una variable el valor de la fila o columna.
También tienes un manual muy bueno dónde explica muy bien el trabajo con Variables. https://exceltrucos.com/2014/11/25/manual-excel-macros-vba-visual-basic/
Excel..ente trabajo!!! muy buen post!!
Gracias!!1
Gracias por seguir el Blog 😉
Hola.
Buscando por la red sobre el área de impresión en excel, llegue a tu foro y veo que tenias un manual para el uso de la variables en excel, lo quise bajar para aprender un poco más sobre el tema, pero desgraciadamente ya no esta donde el enlace.
Te sería posible enviarmelo si aún lo tienes a mí correo.
Te agradezco anticipadamente
Hola corregido el enlace para descargarlo, comprueba que es correcto.
https://exceltrucos.com/2014/11/25/manual-excel-macros-vba-visual-basic/
Gracias por seguir ExcelTrucos 🙂
Muchas gracias, ese el manual, excelente trabajo, felicidades!!!!
Buenas Noches soy nuevo en esto quisiera hacer una macro que imprima un rango seleccionado en una hoja especifica, hice esto pero algo no me sale
Sub Imprime1()
Application.ScreenUpdating = False
If MsgBox(«¿Desea Imprimir?», vbQuestion + vbYesNo) = vbYes Then
‘———————————————-
Dim HResumen As Worksheet
Set HResumen = Worksheets(«BOLETA»)
»’===============================================================================
HResumen.Range(«A2:J43″).Select
Selection.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
»’===============================================================================
HResumen.Range(«C1»).Select
End If
End Sub
Hola Moises prueba a ejecutar el código paso a paso para detectar en la línea que te da error. Te adjunto los enlaces con la info del Blog de cómo hacerlo:
https://exceltrucos.com/category/excel-vba/