Como desativar a notificação de salvar do Excel

Quando você automatizar funções do Excel com macros usando o Visual Basic for Applications, o Excel não sabe que uma macro está controlando a execução e continua a emitir notificações e prompts do usuário. Há várias maneiras de desativar as notificações do Excel ao salvar uma pasta de trabalho e permitir que a macro decida se deseja manter ou descartar as alterações feitas pelo usuário ou pela macro na pasta de trabalho.

Criar macro

1

Inicie o Excel. Escolha "Arquivo" e depois "Opções". Selecione "Personalizar Faixa de Opções" e clique na caixa para colocar uma marca de seleção ao lado da opção "Desenvolvedor" na lista de guias à direita, em Guias Principais, se a caixa ainda não estiver marcada. Selecione "OK" para salvar suas alterações.

2

Escolha "Desenvolvedor" no menu e selecione "Macros". Digite um nome para sua macro e escolha "Criar" para abrir o editor do VBA.

3

Digite o código para sua macro dentro do esquema de sub-rotina fornecido no editor. Chame a sub-rotina de desligamento e passe True para salvar as alterações para a pasta de trabalho ou False para ignorar as alterações para a pasta de trabalho. Chame a sub-rotina CloseAndDiscard para fechar a pasta de trabalho e ignorar as alterações. Por exemplo, digite: "Shutdown (True)", "Shutdown (False)" ou "CloseAndDiscard ()" (sem as aspas).

Criar Sub-rotina Shutdown () ou CloseAndDiscard ()

1

Crie uma sub-rotina do VBA que aceite um sinalizador indicando se as alterações devem ser salvas. Defina a propriedade da pasta de trabalho como "Salvo" como se você tivesse acabado de salvar o arquivo e, em seguida, feche a pasta de trabalho para descartar as alterações sem qualquer aviso ou notificação do usuário. Caso contrário, salve as alterações e feche a pasta de trabalho. Por exemplo:

Sub Shutdown (ShouldSave As Boolean) Se ShouldSave = True Então 'salve as alterações If ThisWorkbook.Saved = False Depois' salve somente se as alterações foram feitas ThisWorkbook.Save 'salve o arquivo sem um prompt de usuário End If Else ThisWorkbook.Saved = True' Diga ao Excel que salvamos o arquivo para descartar as alterações End If

ActiveWorkbook.Close 'fechar o arquivo End Sub

2

Descartar as alterações feitas em uma pasta de trabalho ao fechá-la, desativando todas as mensagens de alerta do sistema, fechando o arquivo e reativando os alertas. Por exemplo:

Sub CloseAndDiscard () Application.DisplayAlerts = Falso ActiveWorkbook.Close 'nenhum prompt de usuário = ignora alterações Application.DisplayAlerts = True End Sub

3

Defina o parâmetro "SaveChanges" como "True" ao chamar o método ActiveWorkbook Close para salvar automaticamente as alterações sem avisar o usuário. Defina o parâmetro como "False" para descartar automaticamente as alterações sem avisar o usuário. Por exemplo:

Sub ShutDown (deve salvar como booleano) ActiveWorkbook.Close SaveChanges: = ShouldSave End Sub

Salvar como pasta de trabalho habilitada para macro

1

Selecione "Arquivo" e "Fechar e retornar ao Microsoft Excel" depois de criar suas macros e sub-rotinas associadas.

2

Selecione "Desenvolvedor" no menu, escolha "Macros", selecione sua macro e selecione "Executar" para executá-lo e testá-lo.

3

Selecione "Arquivo" no menu, escolha "Salvar como ..." e altere a opção Salvar como tipo para "Pasta de trabalho habilitada para macro do Excel (* .xlsm)." Digite um nome de arquivo e escolha "Salvar" para salvar a pasta de trabalho com a macro.

Dicas

  • Quando você define "SaveChanges" como "True", verifique se a pasta de trabalho tem um nome de arquivo associado a ele para evitar um prompt de usuário adicional. Por exemplo:
  • ActiveWorkbook.Close SaveChanges: = True, nome do arquivo: = "myworkbook.xlsx"

Aviso

  • Definir Application.DisplayAlerts como False suprime todos os alertas, não apenas Salvar diálogos. Desative os alertas imediatamente antes da tarefa que possa gerar um alerta e ative novamente os alertas assim que terminar a tarefa, para evitar a supressão de mensagens importantes do sistema.

Recomendado