Imprimir formato con folio

Buen día, necesito de su ayuda; tengo un formato en una hoja de excel la cual tengo un CommandButton donde quiero que imprima dicho formato y que cada vez que ejecute el comando valla incrementado el folio, pero anteponiendo dos letras, en éste caso"PP", ej: PP0001, PP0002, etc. Una vez realizada la impresión e incrementado que borre los datos de las celdas k4:l28 de esa misma hoja.
El folio quiero que aparezca en la celda "D3"
Espero que me puedas ayudar.

1 Respuesta

Respuesta
1
¿Siempre borraras los datos en ese rango? De ser así puedes utilizar lo siguiente
Range("K4:I28"). ClearContents
¿El folio en D3 sera sustituido cada vez que se imprima? De ser así entonces para aumentarlo haría lo siguiente
fin = Len(Range("D3"))
folio = Mid(Range("D3"), 3, fin)
folio = folio + 1
Select Case folio
Case 0 To 9
Range("d3") = "PP000" & folio
Case 10 To 99
Range("d3") = "PP00" & folio
Case 100 To 999
Range("d3") = "PP0" & folio
Case Is > 999
Range("d3") = "PP" & folio
End Select
Primero que nada agradezco de su tiempo para ayudarme. Necesito si me puedes ayudar en la aclaración si estoy haciendo algo mal; te comento rápidamente, el botón que imprime el formato esta en la Hoja1 es por ello que mando llamar la hoja6 y ejecuto el código que me enviaste, pero solo imprime el archivo y no se incrementa en la cenda "D3" ni borra el contenido de las demás seldas que se len indican, ¿alguna sugerencia de que es lo que hago mal?
Este es mi código.
Private Sub CommandButton1_Click()
'controla cualquier posible error, ejecutando en ese caso la línea siguiente
On Error Resume Next
Hoja6.Select
ActiveSheet.PrintOut
Range("K4:I28").ClearContents
'El folio en D3 sera sustituido cada vez que se imprima? De ser asi entonces para aumentarlo haria lo siguiente
fin = Len(Range("D3"))
folio = Mid(Range("D3"), 3, fin)
folio = folio + 1
Select Case folio
Case 0 To 9
Range("d3") = "PP000" & folio
Case 10 To 99
Range("d3") = "PP00" & folio
Case 100 To 999
Range("d3") = "PP0" & folio
Case Is > 999
Range("d3") = "PP" & folio
End Select
'guarda el libro con el nuevo número
ActiveWorkbook.Save
'Y regreso de nuevo a la Hoja1
Hoja1.Select
End Sub
Yo asumí ese código para la hoja activa porque así se infiere al momento que haces tu consulta.
¿Cuándo te refieres a borrar el contenido e incrementar es en la hoja 6 o en la hoja1?
Si es en la hoja 1 después de imprimir debes seleccionar la hoja 1 para aplicar las sentencias y quedaría así
Private Sub CommandButton1_Click()
'controla cualquier posible error, ejecutando en ese caso la línea siguiente
On Error Resume Next
Hoja6.Select
ActiveSheet.PrintOut
Hoja1.Select
Range("K4:I28").ClearContents
'El folio en D3 sera sustituido cada vez que se imprima? De ser asi entonces para aumentarlo haria lo siguiente
fin = Len(Range("D3"))
folio = Mid(Range("D3"), 3, fin)
folio = folio + 1
Select Case folio
Case 0 To 9
Range("d3") = "PP000" & folio
Case 10 To 99
Range("d3") = "PP00" & folio
Case 100 To 999
Range("d3") = "PP0" & folio
Case Is > 999
Range("d3") = "PP" & folio
End Select
'guarda el libro con el nuevo número
ActiveWorkbook.Save
'Y regreso de nuevo a la Hoja1
Hoja1.Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas