Hoje eu vou te ensinar a rastrear encomendas com VBA para automatizar seus trabalhos e buscas no site dos correios!
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 Impressionadores! Na aula de hoje eu quero te mostrar como fazer o rastreamento de encomendas automático com VBA.
Então você vai poder fazer o rastreamento automático no VBA de uma ou mais encomendas de uma vez só.
Para isso vamos utilizar o selenium no VBA que vai permitir a integração com a web para obter informações (webscraping com VBA).
E além disso vamos utilizar a estrutura de repetição For no VBA que serve para repetir uma ação várias vezes.
Com isso você pode procurar várias encomendas e registrar as informações dentro do Excel de forma totalmente automática!
E aí, bora aprender como navegar na web com VBA e trazer as informações das suas encomendas?
Links para download
Em um primeiro momento precisaremos baixar para o computador a biblioteca de comandos, objetos e métodos do Selenium.
Elas devem ser instaladas no seu computador com o instalador do programa, normalmente.
Esses serão usados e acessados para que o VBA faça essa integração com os outros navegadores que não sejam o Internet Explorer (integração nativa).
Logo após você terá, com o VBA aberto, que:
- Ir na guia Ferramentas
- Referências…
- Marcar a caixinha correspondente ao “Selenium Type Library” (como na foto abaixo)
- OK
Pronto, a partir daqui sua biblioteca Selenium estará ativada para uso em seu VBA.
Além da biblioteca de comandos do Selenium, nós precisaremos fazer o download dos drivers dos navegadores extras (não nativos – Opera, Mozzilla, Google Chrome).
Esses drivers serão acessados e utilizados justamente pela biblioteca instalada o Selenium, para que o VBA possa fazer a comunicação/integração dos códigos e fazer ações nos navegadores.
Teremos que instalar esses drivers no local específico do computador onde estará instalado o Selenium. Abaixo mostramos um exemplo de onde ele pode/deve estar instalado:
- C:UsersDiego AmorimAppDataLocalSeleniumBasic
OBS: cada computador tem um caminho específico.
Inserindo um Módulo no VBA
Para criar um código dentro de um módulo, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.
Como não temos nenhum módulo destinado ao tema da aula de hoje, e por questão de organização, vamos criar um módulo à parte.
Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.
Por padrão ele terá o nome de “Módulo 1”.
Colocaremos a seguinte sub dentro dele:
Option Explicit
Sub ConsultaCodigo()
Dim navegadorChrome As New ChromeDriver
Dim linkPesquisa As String
Dim linha As Long, ultLin As Long
navegadorChrome.AddArgument ("--headless")
ultLin = Range("A1000000").End(xlUp).Row
For linha = 2 To ultLin
linkPesquisa = "https://www.linkcorreios.com.br/?id=" & Cells(linha, 1).Value
navegadorChrome.Get (linkPesquisa)
Cells(linha, 2).Value = navegadorChrome.FindElementsByClass("card-header")(1).FindElementsByTag("li")(1).Text
Cells(linha, 3).Value = navegadorChrome.FindElementsByClass("card-header")(1).FindElementsByTag("li")(2).Text
Next
Columns("A:C").AutoFit
navegadorChrome.Close
Set navegadorChrome = Nothing
End Sub
Explicação do código acima:
- A primeira linha diz que que todas as variáveis utilizadas no código serão obrigatoriamente declaradas. Observe que isso é algo que é colocado fora da estrutura das nossas subs (vem antes do começo da Sub, de fato)
- Vamos dimensionar:
- A variável “navegadorChrome” como um objeto que representa uma nova instância do Google Chrome (através do Chrome Driver)
- a variável “linkPesquisa” como como uma String (texto)
- as variáveis “linha” e “ultLin” como números do tipo Long
- Para entender melhor sobre os tipos de dados no VBA, visite esse link oficial
- Para o “navegadorChrome” criado vamos adicionar o argumento “sem cabeça”. Ou seja, ao ser aberto, o navegador não vai ser mostrado, por opção nossa
- Armazenar na variável “ultLin” a última linha preenchida da coluna A
- Usar de uma estrutura de repetição do tipo For, que vai fazer ações da linha 2 até a linha dada pela variável “ultLin”
- A variável “linkPesquisa” vai receber de fato o endereço do site a ser visitado, em formato de String (texto), do que for resultado do site “https://www.linkcorreios.com.br/?id=” e o que tiver na célula, na coluna A (1) na mesma linha que estiver a estrutura de repetição (entre 2 e “ultLin”)
- Vamos visitar o site dado pela variável “linkPesquisa”, que é para onde vamos navegar de fato
- Armazenar na célula da linha da estrutura de repetição, na coluna B (2) o texto correspondente ao elemento de índice 1 com tag “li” dos elementos de classe “card-header” de índice 1
- Armazenar na célula da linha da estrutura de repetição, na coluna C (3) o texto correspondente ao elemento de índice 2 com tag “li” dos elementos de classe “card-header” de índice 1
- E segue para a próxima linha da estrutura de repetição
- Fazer o autoajuste das colunas de A a C da planilha
- Fecharemos (quit, em inglês) o nosso navegadorChrome
- Por convenção iremos “limpar” a memória da variável “navegadorChrome”
- Se encerra o nosso código
Ao final do código, teremos os valores pesquisados nas células B4, B5 e B6, adquiridos a partir da visita ao site. Veja abaixo:
Conclusão de Como Rastrear Encomendas com VBA
Nessa eu te mostrei como fazer o rastreamento de encomendas utilizando o VBA para automatizar os seus trabalhos e projetos.
Os assuntos que vimos nessa aula foram:
- Buscar informações na WEB com Selenium no VBA
- Automação no Excel
- Webscraping com VBA
- Estrutura de repetição do tipo For
Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel e VBA toda semana! Abraço!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.