Impresión vista previa, solo las celdas con datos

Necesito que me ayudéis para un código en vba para poder imprimir y ver primero en vista previa las celdas que tengan solo los datos las que estén vacías no las imprima, tengo seleccionada un área de impresión y me imprime todas las celdas.

Os adjunto fotos.

Actual mente tengo el siguiente código, solo para visualizar y imprimir. Pero lo que a mi me interesa ahora es que las celdas vacías no se muestres a la hora de realizar la impresión.

Private Sub CommandButton9_Click()
'Vista previa
UserEliminar.Hide
Sheets("Hoja6").PrintPreview
UserEliminar.Show
End Sub

1 respuesta

Respuesta
1

Pues con

ActiveSheet.PageSetup.PrintArea = [A2] & ":" & [G58]

Puedes ajustar el área de impresión

Sheets(Hoja6").PageSetup.PrintArea = [i2] & ":" & [Q40]

Disculpa soy un poco tocho y no entiendo, como tendría que ser el código entero, o no me explicado bien.

Si tengo en la Hoja6 con una selección de área de impresión con vista previa, en el área seleccionada hay celdas vacías pero están con bordes, solo me interesa imprimir solo las que hay datos de escritura y numeración.

Te adjunto imágenes para que me comprendas lo que quiero hacer desde un UserForm con un botón CommandButton9

Vista previa actual

No se si me explicado bien.

Un saludo Erick Leonel, gracias por la atención y paciencia de un novato

Ah ok, creo que el rango a imprimir es range(i1:q8) ; la pregunta es, ¿Siempre es el mismo rango o cambia?

Si es el mismo rango siempre, quedaría algo así:

Private Sub CommandButton9_Click()
'Establecer área de impresión
Worksheets("Hoja6").PageSetup.PrintArea = "$i$1:$Q$8"
'Visualizar área de impresión en vista previa
'UserEliminar.Hide
Sheets("Hoja6").PrintPreview
'UserEliminar.Show
End Sub

pero la otra es, si tu formato cambia y lo que deseas es que se imprima hasta la ultima fila escrita, se debe hacer un ajuste para que excel vaya a una celda que este muy muy abajo que sí o sí, este vacia, y luego se desplace a la primer fila hacia arriba con texto. el ejemplo seria algo asi:

Private Sub CommandButton9_Click()
'Establecer área de impresión con ultima celda escrita en D
fin = Hoja6.Range("Q100").End(xlUp).Row
Sheets("Hoja6").PageSetup.PrintArea = Range("$i$1" & fin)

'Visualizar área de impresión en vista previa
'UserEliminar.Hide 'no se para que existe esta sintaxis, la tenias al inicio.
Sheets("Hoja6").PrintPreview
'UserEliminar.Show' eliminada
End Sub

¿No se si es así... igual el encabezado no te sirve?

Estoy suponiendo que termina en la fila 8 pero realmente no se ve en tu foto que fila es.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas