Blog

Postado em em 18 de setembro de 2021

Série Automação Web Aula8 – Executar Macro em Períodos Determinados

Essa é a Série Automação Web Aula8, nessa aula vou te mostrar como executar uma macro de forma automática em períodos determinados!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, pessoal! Essa aqui é a última aula da Série Automação Web em VBA (Série Automação Web Aula8)! Nela nós vamos finalizar nosso projeto Web scraping VBA.

Você vai aprender como executar macro em períodos determinados. Como assim?

Você vai aprender a como executar macro automaticamente (executar macro diariamente, semanalmente, mensalmente).

Já imaginou a macro rodar diariamente de forma automática para poder fazer suas buscas de preço pra você? Sem ter que abrir o Excel e rodar macros VBA de forma manual?

Ficou curioso? Bora pra aula que o conteúdo está irado!

Disparar macro ao abrir a planilha: evento de abertura

Para fazer com que a nossa macro rode automaticamente ao abrir a planilha, deveremos utilizar de um evento no VBA, mais especificamente falando de um evento de abertura da planilha.

Um evento nada mais é do que um acontecimento que vai fazer alguma(s) ação(ões) disparar: o nosso código.

Com o VBA aberto, teremos que programar um evento Workbook_Open da forma mostrada abaixo, clicando duas vezes no menu à esquerda em “EstaPastaDeTrabalho”, e colocando o seguinte código:

Série Automação Web Aula8

O comando Call vai “chamar” a nossa Macro criada ComparadorDePreco a funcionar/rodar, fazendo com que no ato de abrir a planilha, a nossa macro passe a funcionar.

OBS: Para rodar a macro desconsiderando a caixa inicial, que pergunta se quer rodar o código ou não, podemos comentar as duas linhas abaixo, ou retirá-las do código:

'resp = MsgBox("Você realmente quer rodar o código?", vbYesNo)

'If resp <> 6 Then Exit Sub

Executar macro periodicamente: Agendador de tarefas do Windows

Você não pode rodar uma macro de um arquivo fechado. Você terá que, nesse caso, abrir o arquivo de alguma forma para que ele rode os códigos.

Terá que fazer isso de forma a você mesmo abrir (lembrete em alguma agenda, ou de cabeça), ou você programar o seu computador para fazer, que é o objetivo da aula de hoje da série te mostrar.

Caso seu computador seja um Windows, existe uma ferramenta chamada Task Scheduler/Agendador de tarefas que pode te ajudar nesse desafio.

Ele vai abrir o arquivo para você, no tempo/intervalo especificado.

Na planilha, teremos que programar um evento Workbook_Open para que o código seja executado toda vez que a planilha se abrir, como explicado acima.

Para configurar o agendador a rodar uma tarefa, deveremos:

  • Criar um arquivo com extensão .bat com o seguinte texto:
start Excel.exe “C:/pasta/pasta/pasta/arquivo.xlsm”

Salvá-lo como um arquivo .bat, pois só assim ele vai ser lido corretamente

Abrir o agendador de tarefas pelo Menu Iniciar do Windows e configurar a abertura desse arquivo .bat da seguinte forma:

Ir em Ação > Criar Tarefa Básica

Série Automação Web Aula8

Colocar um nome intuitivo e uma descrição > Avançar

Definir a periodicidade (escolheremos no exemplo “uma vez”) > Avançar

Definir data e horário para execução > Avançar

Iniciar um programa

Procurar o arquivo .bat em questão para ser script/programa (criado no começo) > Avançar

Concluir

Pronto! O agendador foi configurado e vai abrir o arquivo.bat na data e hora agendadas, e consequentemente abrir a sua planilha e executar a busca de preços!

Fechar a planilha automaticamente

Uma possibilidade interessante que pode ser de sua vontade é fechar a planilha automaticamente após a verificação de preços automática.

O comando abaixo (colocado como comentário no código) vai te permitir a fechar a planilha em questão, sem salvar as mudanças:

‘Thisworkbook.Close False


OBS:
Para salvar as mudanças com os últimos preços encontrados troque “False” por “True”.

Conclusão – Série Automação Web Aula8

Nessa aula você aprendeu:

  • Como lidar com eventos de abertura
  • Programar a planilha para abrir e rodar seu código de forma automática
  • Instrução Call VBA
  • Lidar com Agendador de tarefas no Windows
  • Como executar macro em períodos determinados
  • Fechar a planilha sem salvar

Encerramos nossa série, pessoal! Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel, VBA e Power BI!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer aprender a construir um Dashboard do Zero e também tudo que você precisa para passar em uma Prova de Excel? Participe da Jornada do Excel!