¿Cómo ajustar con VBA un rango de impresión a partir de un rango dinámico?
Recurro a su amplia experiencia para resolver un inconveniente:
He creado una plantilla para hacer una consulta de ordenes de pedido por medio del RFC del cliente, la plantilla esta dividida en tres rangos:
Primer rango B1:I22 se ubican los datos generales del cliente y los encabezados.
Segundo rango B23:I40 es el rango dinámico donde se visualizará el Id del artículo, nombre, cantidad e importe, los cuales se muestran en una tabla con 4 columnas.
El máximo de este rango son 18 fila para mostrar los artículos de un pedido, por lo tanto, cuando la consulta arroje 18 artículo la impresión ocupará dos hojas necesariamente para mostrar lo dos primeros rangos en la primera hoja.
Tercer rango B41:G61 es el rango que va al final de la hoja después del último articulo de la consulta donde se describen los resúmenes del pedido y condiciones de pago, etc. Por lo que este rango se imprimirán en una segunda hoja.
Sin embargo, lo mas frecuente son pedidos menores a 18 artículos, algunos solo corresponden a uno, dos, tres o cuatro artículos, por lo que en mi plantilla de Excel en el segundo rango designado para mostrar todos los artículos me quedan una cuadricula con varias filas vacías y eso no se ve bien a la hora de imprimir.
Lo que hago es ocultar manualmente las filas vacías para ajustar el rango de impresión a una sola hoja, luego imprimir y después volver a mostrar las filas ocultas para que vuelva a ser visible toda la cuadricula con las 18 filas ya que muy de vez en cuando se llegan a ocupar en su totalidad.
Necesito una macro que me ayude a justar de manera automática lo anterior y que el segundo rango sea dinámico, es decir, que cuando la consulta no abarque las 18 filas, el segundo y tercer rango se ajusten automáticamente a una sola hoja para mostrar los tres rangos en una sola hoja cuando así lo permita.