Usando macros para guardar livros quando células se alteram

No Excel, você pode estar trabalhando em dados que é tão sensível que você vai querer salvar cada vez que uma célula ou intervalo de células é alterado. Esta macro permite que você defina um intervalo de células que, quando alterado, obriga a pasta de trabalho para salvar.

No exemplo mostrado, você quer a pasta de trabalho para salvar quando uma edição é feita para qualquer uma das células na C5 intervalo: C16.

Alterar uma célula em C5: C16 obriga a pasta de trabalho para salvar.
Alterar uma célula em C5: C16 obriga a pasta de trabalho para salvar.

Como as obras de macro

O segredo para este código é o método Intersect. Porque você não deseja salvar a planilha quando as alterações celulares velhos, você usa o método Intersect para determinar se a célula de destino (a célula que mudou) cruza com o intervalo especificado como o intervalo de disparo (C5: C16, neste caso) .

O método Intersect retorna uma de duas coisas: um objeto Range que define a intersecção entre as duas gamas indicadas ou nada. Então, em essência, você precisa jogar a célula-alvo contra o método Intersect para verificar um valor de nada. Nesse ponto, você pode decidir se deseja guardar o livro.

Private Sub Worksheet_Change (ByVal Target As Range) "Passo 1: A gama alterado cruzam Se Intersect (Target, Range (" C5: C16 "))? É nada Then'Step 2: Se não há intersecção, Sub saída procedureExit ' passo 3: Se houver um cruzamento, salvar o workbookElseActiveWorkbook.Save'Step 4: Feche a Se statementEnd IfEnd Sub

No Passo 1, basta verificar para ver se a célula alvo (a células que foram alteradas) está na gama especificada pelo método de interseção. Um valor de nada, a célula alvo estiver fora do intervalo especificado.

Passo 2 obriga a macro para parar e sair do procedimento, se não houver intersecção entre a célula alvo e do intervalo especificado.

Se houver um cruzamento, Passo 3 dispara o método Save do livro activo, substituindo a versão anterior.

Na etapa 4, você simplesmente fechar a instrução If. Cada vez que você iniciar uma verificação If-Then-Else, você deve fechá-la para fora com um End correspondente If.

Como usar o macro

Para implementar essa macro, você precisa copiar e colá-lo na janela de código de eventos do Worksheet_Change. Colocar a macro aqui permite que ele seja executado cada vez que fizer qualquer alteração à folha:

  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 na folha a partir do qual você deseja acionar o código.

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

  5. Digite ou cole o código no módulo recém-criado, alterando o endereço gama para atender às suas necessidades.

    Digite o seu código no evento planilha Alterar.
    Digite o seu código no evento planilha Alterar.

menu