Excel 2010/2013 - VBA - Como executar evento antes da visualização da impressão

Excel 2010/2013 - VBA - Como executar evento antes da visualização da impressão

Tenho passado muito tempo tentando resolver esse problema e pesquisei em muitos fóruns, mas ainda não encontrei uma solução. Talvez alguém aqui possa encontrar uma resposta...

Quero executar algum código (alterar algumas células para mudar a formatação condicional, ocultar algumas linhas etc.) antes que o usuário imprima a pasta de trabalho.

Antigamente, isso era feito simplesmente executando o evento _BeforePrint integrado no Excel:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    'Do something
End Sub

No Excel 2010 e superior, o usuário pode clicar em visualização de impressão após pressionar Ctrl-P ou ir em Arquivo-> Imprimir.

O evento _BeforePrint só é acionado depois que o usuário clica em Imprimir!

Portanto, o usuário está vendo uma visualização de impressão da planilha antes da execução da minha macro. A folha agora não parece boa para impressão e o usuário começa a manipulá-la porque não sabe que a folha estará preparada para impressão após pressionar o botão Imprimir.

Alguém tem uma solução para isso?

informação relacionada