Numerar Factura y limpiar contenido

Me estoy volviendo loco buscando la manera de poder hacer esto, estoy utilizando una factura y me gustaría que cuando le diera a guardar se grabara un nuevo libro, sin borrar el libro que utilizo, utilizando el numero de la factura y el nombre del cliente y que a la vez se limpiaran las celdas y sumara un número más en el número de la factura.
Bueno no se si me he explicado bien lo que realmente quiero es que el libro que utilizo como plantilla siempre que lo guarde se vuelva a quedar listo para poder meterle datos y que sume un número más en el número de la factura.
No se si podéis ayudarme pero aunque no lo hagáis quisiera felicitaros por vuestra labor.
Respuesta
2
Si me pasas tu código o archivo y me indicas los rangos que quieres borrar y donde quieres el nº de factura te lo modifico
Mi correo
d2enrique arroba hotmail.com
Hola he seguido indagando y he dado con la solución, que me sume uno en el numero de factura, y luego me limpie los campos.
Pero ahora lo que me gustaría es que al hacer click en el botón imprimir, antes me guarde una copia en una carpeta donde guardare una copia de cada libro, por ejemplo tomando el numero de factura + el nombre del cliente como el nombre del archivo.
¿Es posible?, este es el código 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
Gracias.
Perdonar pero la fórmula que he puesto anteriormente no me funciona como pensaba, porque me limpia las celdas antes de imprimirlas y el impreso me sale en blanco.
Gracias
Manolo un par de preguntas sobre tu archivo de factura
te expongo lo que yo haría y me dices si te vale o quieres otra cosa
creo que lo ideal es una macro que te guarde los datos tales como nº factura cliente etc en otra hoja con lo cual tendrás una tabla donde buscar clientes ventas etc.
Al mismo tiempo mandaríamos imprimir borrar rangos, incrementar nº factura, guardar archivo, etc
así mismo si tienes listado de productos con precios etc.se podrían crear listas donde al escoger el producto te aparezca el precio
Dime si te interesa y me pongo con ello
Enrique muchas gracias por la molestia, bueno lo que me dices es más de lo que yo realmente pensaba, lo de guardar el nº factura, cliente en otra hoja para tener donde buscar los clientes me parece una buena idea, no la había pensado.
Lo de imprimir, guardar, limpiar y aumentar un nº es lo que yo tenia pensado, pero los artículos los meto manualmente.
Muchísimas Gracias.
Te mande el archivo con esta macro
Sub impresion_factura()
Application.ScreenUpdating = False
Dim respuesta As Integer
'te pregunta si quieres seguir con la macro ó salir
respuesta = MsgBox("¿Quieres imprimir?", vbYesNo, "Información importante")
If respuesta = 7 Then
Exit Sub
Else
 Sheets("factura").PrintOut Copies:=1, Collate:=True 'imprime seleccion
'cambia el nº copies:= 1 por la cantidad de copias que quieras
 Range("A49:M49").Select
    Selection.Copy
    Sheets("resumen").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False 'xlAll
    Sheets("Factura").Select
    Application.CutCopyMode = False
 Range("F9:H16").Select
    Selection.ClearContents
    Range("B22:G36").Select
    Selection.ClearContents
'incrementa en 1 la celda h4
Sheets("Factura").Range("h4") = Sheets("Factura").Range("h4") + 1
Range("F9:H9").Select
 Application.ScreenUpdating = True
'guarda el archivo
ActiveWorkbook.Save
End If
End Sub
Cuando pulses sobre el logotipo te pregunta si quieres seguir
pruébalas y ya me cuentas que tal
De nuevo para poder escoger impresora te añadí esto en el código
Dim ImpresoraActual As String
ImpresoraActual = Application.ActivePrinter
'te da escoger impresora
Application.Dialogs(xlDialogPrinterSetup).Show
' aqui siguen tus acciones para una impresion
'cambia el nº copies:= 1 por la cantidad de copias que quieras
Sheets("factura").PrintOut Copies:=1, Collate:=True
' y despues vuelves a establecer la que estaba como activa '
Application.ActivePrinter = ImpresoraActual
Si te vale no olvides puntúa y finalizar la pregunta
La verdad es que has mejorado mis expectativas con creces, te agradezco enormemente tu ayuda. Gracias por compartir tus conocimientos.
Mil Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas