Usando macros para salvar pastas de trabalho quando as células mudar

No Excel, você pode estar trabalhando em dados que é tão sensível que você vai querer salvar cada vez que uma célula específica 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 antigos, 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 Intersecção retorna uma de duas coisas: um objecto de intervalo 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 se há 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")) Não é nada Then`Step 2: Se não houver cruzamento, saída procedureExit Sub`Step 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á no intervalo especificado pelo método de interseção. Um valor de Nada significa 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 o intervalo especificado.



Se houver uma intersecção, Passo 3 é accionado o método Guardar o livro activo, substituindo a versão anterior.

Na Etapa 4, você simplesmente fechar a instrução If. Toda vez que você iniciar uma verificação If-Then-Else, você deve fechá-lo com um End correspondente Se.

Como usar o macro

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

  1. Ativar 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 dele para ver 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.

Publicações relacionadas