Índice:
Vídeo: Salvar Cópia de Planilha Excel e Escolher Pasta Destino com Código Excel VBA 2025
No Excel, você pode estar trabalhando em dados tão sensíveis que você deseja salvar sempre que uma determinada célula ou intervalo de células é mudou. Essa macro permite que você defina um intervalo de células que, quando alteradas, forçam a pasta a salvar.
No exemplo mostrado, você deseja que a pasta de trabalho seja salva quando uma edição é feita para qualquer uma das células no intervalo C5: C16.
Como funciona a macro
O segredo para este código é o método Intersect. Como você não deseja salvar a planilha quando qualquer célula antiga muda, você usa o método Intersec para determinar se a célula alvo (a célula que mudou) intersecta com o intervalo especificado como o intervalo de gatilho (C5: C16 neste caso).
O método Intersect retorna uma das duas coisas: um objeto Range que define a interseção entre os dois intervalos, ou nada. Então, em essência, você precisa jogar a célula alvo contra o método Intersect para verificar o valor de Nothing. Nesse ponto, você pode decidir se deseja salvar a pasta de trabalho.
Private Sub Worksheet_Change (ByVal Target As Range) 'Etapa 1: o intervalo alterado se cruzou? Se Intersect (Target, Range ("C5: C16")) não é nada, então, "Etapa 2: Se não houver nenhuma interseção, sair do procedimento Sair Sub 'Etapa 3: Se houver uma interseção, salve a pasta de trabalho Else ActiveWorkbook. Salvar 'Etapa 4: Feche a instrução If End If End Sub
Na Etapa 1, você simplesmente verifica se a célula alvo (a célula que mudou) está no intervalo especificado pelo método Intersect. Um valor de Nada significa que a célula alvo está fora do intervalo especificado.
O Passo 2 força a macro a parar e sair do procedimento se não houver interseção entre a célula alvo e o intervalo especificado.
Se houver uma interseção, o Passo 3 dispara o método Save da pasta de trabalho ativa, substituindo a versão anterior.
Na Etapa 4, você simplesmente encerra a instrução If. Toda vez que você inicia uma verificação If-Then-Else, você deve fechá-la com um End If correspondente.
Como usar a macro
Para implementar esta macro, você precisa copiá-la e colá-la na janela do código de evento Worksheet_Change. A colocação da macro aqui permite que ele seja executado sempre que você fizer qualquer alteração na folha:
-
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 na folha a partir da qual deseja ativar o código.
-
Na lista suspensa Evento, selecione o evento Alterar.
-
Digite ou cole o código no módulo recém-criado, alterando o endereço do intervalo de acordo com suas necessidades.
Digite seu código no evento de Mudança de planilha.
