Executar macro se houver alguma alteração feita na folha no intervalo especificado

Índice:

Anonim

Ao longo de suas práticas de VBA, você teria a necessidade de executar macros quando um determinado intervalo ou célula fosse alterado. Nesse caso, para executar macros quando uma alteração é feita em um intervalo de destino, usamos o evento de alteração. Os eventos no VBA nos permitem executar as macros quando um determinado evento ocorre.

Evento de mudança de intervalo VBA de sintaxe

Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("your_range")) Is Nothing Then chame your_macro End If End Sub

O evento não funciona em módulos. Você precisa escrevê-los em objetos (planilha, gráficos, pasta de trabalho).

Lat's tem um exemplo para aprender como executar uma macro quando uma alteração é feita em um intervalo especificado.

Exemplo: Executar uma macro VBA quando uma alteração for feita no intervalo A2: A100

Primeiro, escolhemos a folha na qual o evento ocorrerá. Clique duas vezes nessa folha no editor VBA e copie o código abaixo ou o código genérico acima e faça as alterações de acordo com sua necessidade.

Neste exemplo, quero executar um código macro / VBA quando uma alteração é feita no intervalo A2: A100 na planilha 2. Para fazer isso, clico duas vezes na planilha2 no explorador de projetos. Ele abre a página de codificação dessa folha. Você pode clicar com o botão direito do mouse na planilha e clicar no código de visualização para fazer o mesmo.

Preciso usar o evento de mudança. Para isso, usamos a sub-rotina padrão Worksheet_Change (ByVal Target As Range). Ele é acionado quando uma alteração especificada é feita. Portanto, nosso código é este:

Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("A2: A100")) Is Nothing Then Chame TestEvent End If End Sub 

Quando você faz qualquer alteração no intervalo A2: A100 na Planilha2, a sub-rotina TestEvent será chamada, como você pode ver no gif acima.

O TestEvent é a sub-rotina pública no módulo2. Ele simplesmente exibe uma mensagem de que o evento está funcionando.

Sub TestEvent () MsgBox "O evento está funcionando!" End Sub 

Como funciona?

Colocamos uma condição:

If Not Intersect (Target, Range ("A2: A100")) Is Nothing Then

Aqui, Intersect (Target, Range ("A2: A100")) Is Nothing retorna True se nenhuma alteração for feita no Range A2: A100. Colocamos um operador Not antes desta instrução que inverte a saída fornecida por "Intersect (Target, Range (" A2: A100 "))". Portanto, se nenhuma alteração for feita no intervalo A2: A100, a expressão retornará Quedas e o subTestEvent não receberá a chamada. Se você fizer uma alteração em qualquer célula no intervalo A2: A100, a expressão retornará True e o evento ocorrerá. E é isso que está acontecendo aqui.

Observação: Você pode colocar qualquer sub-rotina neste bloco. Pode ser de qualquer módulo. Mas deve ser uma sub-rotina pública. Você pode definir o intervalo em qualquer extensão. A folha inteira é o limite.

Então, sim pessoal, é assim que você pode chamar uma sub-rotina ou executar um código macro / VBA quando uma alteração é feita em um intervalo especificado. Foi um exemplo básico de evento. Este evento será disparado apenas quando a alteração for baseada em texto. Por baseado em texto, quero dizer se você escrever algo nas células ou excluir, o evento será disparado. Se você alterar a formatação das células, ele não será acionado. Existem outros métodos para fazer isso.

Espero que tenha sido útil. Se você tiver alguma dúvida relacionada a este tópico do VBA ou qualquer outro tópico relacionado ao Excel, deixe-me saber a seção de comentários abaixo. E verifique nossas outras postagens relacionadas e populares mencionadas abaixo.

Executar macro quando qualquer alteração for feita na planilha| Portanto, para executar sua macro sempre que a planilha for atualizada, usamos os Eventos de Planilha do VBA.

Código VBA mais simples para destacar a linha e a coluna atuais usando| Use este pequeno trecho de VBA para destacar a linha e coluna atuais da planilha.

Os eventos de planilha no Excel VBA| Os eventos de planilha são realmente úteis quando você deseja que suas macros sejam executadas quando um evento especificado ocorrer na planilha.

Artigos populares:

50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.

A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.

CONT.SE no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.

Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.