Imprimir y limpiar celdas

Hola estoy intentando de hacer una factura y quiero que al imprimirla se me borren algunas celdas y me sume uno al numero de factura, pero lo que me hace es que me borra las celdas antes de imprimirlas, por la cual el impreso que obtengo sale con los campos en blanco.
Esto es lo que tengo por el momento;
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.Range("h4").Value = ActiveSheet.Range("h4").Value + 1
Range("f9:h9").ClearContents
Range("f10:h10").ClearContents
Range("f11:h11").ClearContents
Range("f12:h12").ClearContents
Range("f13:h13").ClearContents
Range("f14:h14").ClearContents
Range("f15:h15").ClearContents
Range("f16:h16").ClearContents
Range("b22:b36").ClearContents
Range("c22:f22,c23:f23,c24:f24,c25:f25,c26:f26,c27:f27,c28:f28,c29:f29,c30:f30,c31:f31,c32:f32,c33:f33,c34:f34,c35:f35,c36:f36").ClearContents
Range("g22:g36").ClearContents
Range("F9").Select
End Sub
Por otro lado me gustaría que antes de imprimirse y se limpien los datos se me diera la opción de guardar una copia. Así de esta forma siempre se quedaría este libro que utilizo como plantilla en blanco y listo para volver a utilizarlo.
Muchas Gracias de antemano y Felices Fiestas.

1 Respuesta

Respuesta
1
Analizando tu rutina, que se ejecuta BeforePrint, es decir antes de imprimir, es lógico que te limpie las celdas.
Necesitas otra rutina, que llame a la impresión y luego limpie.
La vas a colocar en un módulo (quitá esta que tenés ahora en el evento BeforePrint) y luego podes asignarla a un botón o atajo de teclado. En mi página de macros encontrarás instrucciones para realizar esto.
Sub respaldaFact()
'x Elsamatilde  
'guarda copia
ruta = "tu carpeta destino\"
nbre="nombre de la copia.extensión"
Activeworkbook.SaveCopyAs ruta & nbre
'imprime
Activesheet.PrintPreview    'vista previa. Reemplazar x PrintOut para papel
'limpia
'--------tus lineas de limpieza aqui
'incrementa
'------ tu linea del H4 aquí
End Sub
Completá las variables ruta y nbre y colocá las instrucciones que faltan antes de probarlo.
Sdos. No dejes la consulta sin finalizar si el tema queda resuelto.
Elsa
PD) Ultimos dias para la compra de manuales al 50%. No te los pierdas !
Previamente tenés que llenar las variables ruta y nbre
Hola Muchas Gracias por todo, la fórmula funciona de lujo, salvo que el nombre escribo l a carpeta destino, pero se graba siempre con el mismo nombre y me gustaría que se guardara con el numero de factura, celda h4 + el nombre del cliente, celda f9, ¿es posible hacer esto?
Gracias y Felices Fiestas.
nbre=Range("H4") & "_" & Range("F9") & ".xls"
Podes utilizar otro separador o ninguno y ajustá la extensión
Sdos y Feliz Navidad. Y te espero con un manual antes de fin de año ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas