Uma macro do Excel para Prevenir pastas de trabalho a partir de Encerramento

Há momentos em que você não quer um usuário fechando um livro do Excel sem digitar uma parte específica de dados. Nessas situações, seria útil para negar ao usuário a capacidade de fechar o livro até que a célula-alvo é preenchido (como mostrado aqui). Este é o lugar onde esta macro bacana entra.

Impedir o fechamento até que uma célula específica é preenchida.
Impedir o fechamento até que uma célula específica é preenchida.

Como as obras de macro

Este código é acionado pelo evento BeforeClose do livro. Ao tentar fechar o livro, este evento é acionado, a execução do código dentro. A macro verifica para ver se a célula alvo (células C7, neste caso) está vazio. Se estiver vazio, o processo de fechamento é cancelada. Se C7 não está vazio, o livro é guardado e fechado:

Private Sub Workbook_BeforeClose (Cancel As Boolean) "Passo 1:.. Verifique se a célula C7 é Sheets blankIf (" Sheet1 ") Range (" C7 ") Value =" "Then'Step 2: Se a célula estiver em branco, cancele a perto e dizer userCancel = TrueMsgBox "C7 celular não pode estar em branco" "Passo 3: Se a célula não estiver em branco, salvar e closeElseActiveWorkbook.Close SaveChanges: = TrueEnd IfEnd Sub

Passo 1 verifica se C7 está em branco.

Se C7 está em branco, Passo 2 entra em vigor, cancelando o processo de fechamento, passando Fiel ao Anular booleana. Passo 2 também ativa uma caixa de mensagem notificando o usuário de sua estupidez (bem, não é assim tão duro, realmente).

Na Etapa 3, se a célula C7 não estiver em branco, o livro é guardado e fechado.

Como usar o macro

Para implementar essa macro, você precisa copiar e colá-lo na janela de código de eventos do Workbook_BeforeClose. Colocar a macro aqui permite que ele seja executado cada vez que você tentar fechar a pasta de trabalho:

  1. Ative o Editor do Visual Basic pressionando Alt + F11.

  2. Na janela do projecto, encontrar o seu nome do projeto / pasta de trabalho e clique no sinal de mais ao lado e veja todas as folhas.

  3. Clique ThisWorkbook.

  4. Na lista drop-down de eventos, selecione o evento BeforeClose.

  5. Digite ou cole o código no módulo recém-criado.

    Digite o seu código no evento de pasta de trabalho BeforeClose.
    Digite o seu código no evento de pasta de trabalho BeforeClose.

menu