Macro que roda automaticamente

Share on facebook
Share on google
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram

Leia também...

Gráfico de pirâmide

Gráfico de pirâmide O gráfico de pirâmides é bastante utilizado para visualizar faixas etárias de alguma região geográfica, mas outras aplicações também podem ser beneficiadas

Ler »

Macro que roda automaticamente

Não há duvidas que as macros são uma grande mão-na-roda no Excel. É possível automatizar relatórios inteiros, sem gerar nenhum grande esforço do usuário.

Mas em muitos casos é preciso apertar algum botão ou algumas teclas de atalho para conseguir executar a macro.

Para te deixar mais preguiçoso, e te poupar milésimos de segundos, removendo a necessidade de apertar qualquer coisa para rodar seu código de macro, existe a possibilidade de fazer suas macros rodarem automaticamente quando:

  • Abrir o arquivo do Excel
  • Fechar o arquivo do Excel
  • Alguma célula específica for alterada
  • Qualquer célula em uma determinada aba for alterada

Antes de começar, um esclarecimento. Sempre que você ver escrito:

  • Manualmente – Significa que o código é executado quando a célula sofre uma alteração manual, intencional do usuário.
  • Via Fórmula – Significa que o código é executado quando a célula sofre uma alteração por conta de uma fórmula, ou seja, outra célula é alterada e a célula observada é alterada por conter uma fórmula que sofre mudanças em seu resultado.

Sem mais delongas, vamos ver como fazer isso.


Rodar macro ao abrir o arquivo do Excel

Abra o editor VBA (Alt + F11).

No menu da esquerda procure por EstaPasta_de_trabalho e selecione dando dois cliques.

Na janela à direita digite o código abaixo:

Private Sub Workbook_Open()
 
 MsgBox "Olá, bom te ver de novo!"
 
End Sub

Conforme a imagem abaixo.

Macro automática1

Curioso para saber como alterei as cores no meu código? Clique aqui para saber.

E é apenas isso! Ao inserir a macro Workbook_Open() assim que seu arquivo for aberto o Excel executará o código que estiver ali. seja ele qual for. Neste exemplo aparecerá uma caixa de texto te cumprimentando.

Altere o código para o que deseja que a macro faça e pronto.


Rodar macro ao fechar o arquivo do Excel

Funciona praticamente da mesma forma que a anterior, só muda o nome da macro, veja.

Abra o editor VBA (Alt + F11).

No menu da esquerda procure por EstaPasta_de_trabalho e selecione dando dois cliques.

Na janela à direita digite o código abaixo:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
 MsgBox "Tchau, volte sempre!"
 
End Sub

Conforme a imagem abaixo.

Macro automática2

Ao inserir este código, sempre antes de fechar seu arquivo o Excel ira automaticamente executar a macro, seja ela qual for. Neste exemplo irá aparecer uma caixa de mensagem dizendo tchau.


Rodar macro quando o conteúdo da célula é alterado (Manualmente)

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba na qual está inserida as células que você deseja rastrear sempre que sofrerem alterações e selecione dando dois cliques. No meu caso utilizei a aba Plan1(Plan1) e defini que a macro deverá ser executada sempre que uma das células do intervalo A1:B2 for alterada manualmente.

Na janela à direita digite o código abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Me.Range("A1:B2")) Is Nothing Then Exit Sub
 MsgBox "Algo mudou!"
End Sub

Conforme a imagem abaixo.

Macro automática3

Está pronto, basta alterar manualmente qualquer uma das células do intervalo A1:B2 da aba Plan1 que será executada uma macro que exibirá uma caixa de mensagem, informando que algo mudou.


Rodar macro quando o conteúdo da célula é alterado (Via fórmula ou manualmente)

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba que deseja rastrear, no meu caso utilizei a aba Plan1(Plan1).

Na janela à direita digite o código abaixo:

Na janela à direita digite o código abaixo:

Private Sub Worksheet_Calculate()
 If Range("A1").Value <> PrevVal Then
 MsgBox "Algo mudou!"
 PrevVal = Range("A1").Value
 End If
End Sub

Conforme a imagem abaixo.

3

Porém para que funcione corretamente outras duas etapas devem ser feitas.

No menu à esquerda onde diz EstaPasta_de_trabalho você deve inserir o seguinte código:

Private Sub Workbook_Open()
 PrevVal = Plan1.Range("A1").Value
End Sub

Ele irá garantir que no momento em que o arquivo for aberto a variável que verifica se a célula A1 da Plan1 guarde o valor atual desta célula eassim que ela for alterada conseguirá fazer a comparação e detectar a mudança.

A segunda e última etapa é criar a variável PrevVal que fará todo este controle.

Crie um módulo (ou utilize um já existente) e insira o seguinte código:

Public PrevVal As Variant

Rodar macro quando um coluna ou linha sofre uma alteração (Manualmente)

Neste exemplo irei mostrar a alteração em 2 colunas, as colunas A e B. O procedimento para linha é o mesmo, basta alterar a palavra Column no código abaixo, por Row e definir as linhas.

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba que deseja rastrear, no meu caso utilizei a aba Plan1(Plan1).

Na janela à direita digite o código abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Me.Columns("A:B")) Is Nothing Then Exit Sub
 MsgBox "Algo mudou!"
End Sub

 

5


Rodar macro quando determinada célula for selecionada

Este caso irá funcionar sempre que uma célula específica for selecionada. Neste exemplo iremos rastrear a célula A1. Os ‘$’ que aparecem no código são obrigatórios, caso contrário pode não funcionar.

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba que deseja rastrear, no meu caso utilizei a aba Plan1(Plan1).

Na janela à direita digite o código abaixo:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
 If Target.Address = "$A$1" Then
 Msgbox "Célula selecionada!"
 End If
End Sub

Rodar macro quando qualquer coisa for alterada (Manualmente)

A ideia é a mesma do modelo anterior, mas ao invés de definir um intervalo de colunas ou linhas, iremos definir todas as células como intervalo a ser monitorado.

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba que deseja rastrear, no meu caso utilizei a aba Plan1(Plan1).

Na janela à direita digite o código abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Me.Cells) Is Nothing Then Exit Sub
 MsgBox "Algo mudou!"
 End if
End Sub

Rodar macro quando qualquer coisa for alterada (Via fórmula, não manualmente)

Abra o editor VBA (Alt + F11).

No menu da esquerda procure pela aba que deseja rastrear, no meu caso utilizei a aba Plan1(Plan1).

Na janela à direita digite o código abaixo:

Private Sub Worksheet_Calculate()
 MsgBox "Algo mudou!"
End Sub

Conforme a imagem abaixo.

1

Está pronto, sempre que alguma coisa for alterada manualmente na Plan1 a macro será executada.

Espero ter ajudado. Qualquer dúvida deixe seu comentário logo abaixo.


Acompanhe o Função Excel
facebook-logo youtube-logo googleplus-logo twitter-logo

E aí, o que achou?

Compartilhe

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram

Planilhas prontas

ANALISE

ANALISE é um sistema completo de análise econômico-financeira contábil e gerencial para empresas de todos os segmentos e portes que tenha uma contabilidade atualizada e fidedigna.

As análises são feitas através do correto preenchimento das informações advindas da contabilidade da sua empresa nas interfaces do sistema, basta preencher que o arquivo fará o cálculo dos principais indicadores econômicos financeiros pra você.

Tenha os números da sua empresa estruturados em telas dinâmicas de análise e potencialize o seu processo de tomada de decisões.

Saber mais »

Leia também...

Planilha de Controle Uber, Cabify & 99 Pop

Com a Planilha de Controle Uber, Cabify & 99 Pop você terá total controle de seus ganhos e gastos como motorista, sabendo de onde vem e para onde vai seu dinheiro.
Com esta planilha você terá em detalhes todo o fluxo de dinheiro que envolve seu trabalho como motorista, e poderá controlar melhor sua renda.

Saber mais »
Logo - Ícone

COMPARTILHE COM O MUNDO

Gostou do artigo? Não seja egoísta, compartilhe!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp

VOCÊ ESTÁ POR DENTRO?

Junte-se a lista de e-mails do Função Excel

Inscreva-se agora