Índice:
Vídeo: Fechar Planilha Excel VBA e Salvar Automaticamente ao Fechar Userform VBA 2024
A macro apresentada aqui é uma excelente maneira de proteger os usuários de fechar inadvertidamente seu arquivo antes de salvar. Quando implementado, esta macro garante que o Excel salva automaticamente a pasta de trabalho antes de fechá-la.
O Excel normalmente avisa os usuários que estão tentando fechar uma pasta de trabalho não guardada, dando-lhes uma opção para salvar antes do fechamento. No entanto, muitos usuários podem passar pelo aviso e, inadvertidamente, clicar em Não, informando o Excel para fechar sem salvar. Com esta macro, você está protegendo contra isso salvando automaticamente antes de fechar.
Como funciona a macro
O código é desencadeado pelo evento BeforeClose da pasta de trabalho. Quando você tenta fechar a pasta de trabalho, esse evento dispara, executando o código dentro. O ponto crucial do código é simples - ele pergunta aos usuários se eles querem fechar a pasta de trabalho. A macro então avalia se o usuário clicou em OK ou Cancelar.
A avaliação é feita com uma instrução Select Case. A instrução Select Case é uma alternativa à declaração If-Then-Else, permitindo que você execute verificações de condição em suas macros. A construção básica de uma instrução Select Case é simples:
Selecione Case Case Is = Case Is = Case Is = End Select
Com uma instrução Select Case, você pode executar muitas verificações condicionais. Neste caso, você está simplesmente procurando por OK ou Cancelar. Dê uma olhada no código:
Private Sub Workbook_BeforeClose (Cancelar como booleano) 'Etapa 1: Ative a caixa de mensagem e comece a seleção Selecione Case MsgBox ("Salvar e fechar?", VbOKCancel)' Etapa 2: botão Cancelar pressionado, então cancele o fechamento Case Is = vbCancel Cancel = True 'Etapa 3: botão OK pressionado, então guarde a pasta de trabalho e feche Case Is = vbOK ActiveWorkbook. Salvar 'Etapa 4: Feche a instrução Select Case End Select End Sub
Na Etapa 1, você ativa a caixa de mensagem como a verificação de condição para a instrução Select Case. Você usa o argumento vbOKCancel para garantir que os botões OK e Cancelar sejam apresentados como escolhas.
Na etapa 2, se o usuário clicou em Cancelar na caixa de mensagem, a macro informa o Excel para cancelar o evento Workbook_Close passando True para Cancelar booleano.
Se o usuário clicou no botão OK na caixa de mensagem, o Passo 3 entrará em vigor. Aqui, você diz ao Excel que guarde a pasta de trabalho. E porque você não definiu o cancelar Boolean como True, o Excel continua com o fechamento.
Na etapa 4, você simplesmente encerra a instrução Select Case. Toda vez que você instancia um caso de seleção, você deve fechá-lo com uma seleção final correspondente.
Como usar a macro
Para implementar esta macro, você precisa copiá-la e colá-la na janela do código do evento Workbook_BeforeClose. A colocação da macro permite que ela seja executada sempre que você tentar fechar o livro:
-
Ativar o Editor do Visual Basic pressionando Alt + F11.
-
Na janela do projeto, encontre seu nome do projeto / pasta de trabalho e clique no sinal de mais ao lado dele para ver todos os arquivos.
-
Clique em ThisWorkbook.
-
Na lista suspensa Evento, selecione o evento BeforeClose.
-
Digite ou cole o código no módulo recém-criado.
Digite seu código no evento do livro antes de fechar.