Tengo dificultad con la macro que para generar un consecutivo automático luego de la impresión

Tengo una dificultad con la macro que estoy utilizando para generar un consecutivo automático e imprimirla, ya que no me imprime el consecutivo que estoy visualizando sino el siguiente.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.Unprotect "clave"
Dim Mensaje, Resp
Dim Total As Double
Total = WorksheetFunction.Sum(Range("K8:K10"))
Mensaje = "El total es " & [k11]
Mensaje = Mensaje & "¿Desea Imprimir?"
Resp = MsgBox(Mensaje, vbQuestion + vbYesNo)
On Error GoTo errNoPrint
If Resp = vbYes Then
Application.EnableEvents = False
[k11] = Total
Else
Cancel = True
Application.EnableEvents = True
End If
Application.EnableEvents = True
Exit Sub
[k3] = [k3] + 1
errNoPrint:
[k3] = [k3] - 1
Cancel = True
Application.EnableEvents = True
ActiveSheet.Protect "clave"
End Sub
Agradezco su colaboración para evaluar en que estoy fallando, de antemano muchos gracias por su colaboración.

1

1 respuesta

Respuesta
1

Falta actualizar el valor en la celda K11, podría ser así:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.Unprotect "clave"
    Dim Mensaje, Resp
    Dim Total As Double
    Total = WorksheetFunction.Sum(Range("K8:K10"))
    [k11] = Total
    Mensaje = "El total es " & [k11]
    Mensaje = Mensaje & "¿Desea Imprimir?"
    Resp = MsgBox(Mensaje, vbQuestion + vbYesNo)
    On Error GoTo errNoPrint
    If Resp = vbYes Then
        Application.EnableEvents = False
        [k11] = Total
    Else
        Cancel = True
        Application.EnableEvents = True
    End If
    Application.EnableEvents = True
    Exit Sub
    [k3] = [k3] + 1
errNoPrint:
    [k3] = [k3] - 1
    Cancel = True
    Application.EnableEvents = True
    ActiveSheet.Protect "clave"
End Sub

Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

Buenas noches, Dam

Me hace falta que luego de la impresión se incremente automáticamente el consecutivo que existe en la celda k3... esto no se esta generando en la macro. Muchas gracias

Lo que pasa es que en la macro tienes esto:

Application.EnableEvents = True
Exit Sub
[k3] = [k3] + 1

Te estás saliendo antes de aumentar la celda k3, entonces podrías poner esto:

Application.EnableEvents = True
[k3] = [k3] + 1

Exit Sub

Prueba y me comentas
Saludos. Dam
Si es lo que necesitas.

buenas tardes, con el fin de que pueda observar detenidamente el tema propuesto, le envíe por email el archivo y los comentarios que tengo, a la espera de sus comentarios.

Muchas gracias.

Pero necesito que me expliques la lógica de tu proceso,

a) Quieres que imprima el folio, que sume 1 al folio y que lo actualice la celda

b) Que sume 1 al folio, que actualice la celda y luego que imprima

Te envié un par de archivos para que los revises.

Saludos. Dam

Si es lo que necesitas.

Muchas gracias por la colaboración prestada, la cual me ha sido muy útil, le envíe un correo con un comentario adicional en caso de que se le pueda dar solución para mejorar la presentación del mensaje "el total es 50000000", el cual debería contar con el separador de miles.

Muchas gracias

Cambia en la macro la siguiente línea

Mensaje = "El total es " & Format([k11], "$ #,##0.00")

Saludos. Dam

Muchas gracias, por la atención, esfuerzo y pronta respuesta, cuya ayuda me fue muy útil para resolver la dificultad presentada en la macro, la cual fue superada en su totalidad.

Felicitaciones, por poner al servicio de otros sus conocimientos.

Saludos, y esperando poder seguir contando con usted.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas