Como bloquear la opción de impresión de una hoja de calculo y colocar una macro para exporta a PDF?

Por medio de macro, bloqueo la opción de impresión de un libro de trabajo y en la hoja de calculo coloco un objeto con una macro asignada que exporta el documento a PDF.

El problema que presento es: al dar click en el objeto con la macro, no me exporta el pdf, en su lugar me aparece el mensaje que coloque en el bloqueo de impresión.

Código del Objeto en la hoja de calculo:

Sub ExportarPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Gerencie.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Código del bloqueo de Impresión

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True
MsgBox "No está permitido imprimir esta hoja."
End Sub

1 respuesta

Respuesta
2

[Hola

Exportar un archivo Excel a PDF es en realidad "imprimirlo" a través de una impresora virtual PDF, por eso te da ese error, para Excel estás imprimiendo.

Una forma es que uses una variable pública (cualquiera y con cualquier valor) de este modo. Coloca esto en un módulo "standard" (no olvides que la variable pública debe estar en la parte superior del módulo, no debe de haber nada arriba de ella):

Public Valor As Integer
Sub ExportarPDF()
Valor = 1
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="Gerencie.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Y luego en tu evento "BeforePrint" del libro coloca así:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Valor = 1 Then
    Cancel = False
Else
    Cancel = True
    MsgBox "No está permitido imprimir esta hoja."
End If
End Sub

Comentas.

Abraham Valencia

PD: Cambia el nombre y ruta del archivo a la tuya, yo modifique para probar rápidamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas