fkleinbley
Fiz como vc sugeriu, passo a passo, e reproduzi o erro no 2016. Infelizmente, consegui reproduzir o erro.
Bom, segue minha opinião, nas versões anteriores se não me engano havia uma clara distinção sobre em qual X clicar, o do arquivo ou o da aplicação.
O X disponível no Excel 2016 é mais complexo que isso. Ele se comporta de maneira diferente. Como assim?
Quando há mais de um arquivo aberto, ele se comporta como Fechar Workbook e assim, dispara o Workbook_BeforeClose. Porém quando não há outro arquivo aberto ele se comporta como Fechar a aplicação. E neste caso o código perguntando se é pra salvar ou não o arquivo não passa pelo Workbook_BeforeClose, é um código da aplicação, direto da aplicação.
Eu enxerguei isso pq tentei fechar o arquivo de diversas maneiras e identifiquei o comportamento diferente quando uso Ctrl+F4 (fechar aquivo) ou o Alt+F4 (fechar programa).
Todas as vezes, sem exceção, que eu usei o Ctrl+F4, o arquivo disparou o evento corretamente.
Algumas das vezes que usei o Alt+F4, esbarrei no problema reportado.
Assim, acaba de abrir o arquivo, usa Alt+F4, aparece sua msg.
Responde não. Altera algo. Alt+F4 de novo, aí sim a pergunta se quer salvar, como se não entrasse no evento.
To falando, algum estagiário está querendo colocar melhorias onde não precisa, e está fodendo o Excel...
O arquivo que usei foi este em anexo, e a versão em que testei, após atualizar, foi: 16.0.6366.2068
Não sei o que mais dizer, mas pelo menos acho que te direcionei no caminho para vc ver o que dá pra fazer...
algo do tipo, criar uma classe para capturar eventos em nivel de aplicação, aquela "public withEvents AppEvents as application", para capturar a tentativa de fechar o Excel... Não sei se daria certo, mas eu tentaria ir por lá, de repente colocar no outro evento que em teoria é o mesmo que o seu:
Num mõdulo de classe:
Option Explicit
Public WithEvents AppEvent As Application
Private Sub AppEvent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
End Sub
verifique o se wb.name é igual o thisworkbook.name e só assim dispara o código ali dentro, ... pode ser uma saída...
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 11/02/2016 4:55 pm