Excel vba macro busca detalhada Aula Excel VBA: Verificar Grades e Buscar Correspondências com Cells e Range. Aprenda a programar macros excel vba de forma detalhada

Aula sobre o Macro Excel VBA: Explicação Linha por Linha

Bem-vindos, amados alunos, a mais uma aula prática no incrível universo do VBA! Hoje, iremos explorar um macro poderoso que realiza a verificação de dados, busca correspondências em uma base de dados e preenche informações em uma planilha específica. Vamos destrinchar linha por linha, para que você compreenda sua lógica e como aplicá-la em seus projetos.

1. Introdução ao Macro

Este código VBA (Sub ara()) é utilizado para:

  • Limpar os dados existentes em uma planilha chamada "form";
  • Buscar correspondências na planilha "data", com base em uma lista fornecida na planilha "liste";
  • Preencher os resultados na planilha "form", realizando cálculos com os dados encontrados.

Agora, vamos explorar cada linha para entender sua lógica.

2. Explicação Detalhada – Linha por Linha

Configuração Inicial

vba

Set sf = Sheets("form") ' Define a planilha "form" como referência.
Set Sd = Sheets("data") ' Define a planilha "data" como referência.
Set sl = Sheets("liste") ' Define a planilha "liste" como referência.

➡️ Essas linhas criam atalhos para as planilhas, simplificando o uso no restante do código. O uso de Set associa o objeto Sheets a variáveis (sf, Sd, e sl), facilitando a manipulação dessas planilhas.

Limpando Conteúdos da Planilha “form”

vba

sf.Range("A2:G65536").ClearContents

➡️ Esta linha limpa o intervalo de células A2:G65536 na planilha "form", removendo os dados existentes antes de adicionar os novos resultados.

Tratamento de Erros

vba

On Error Resume Next

➡️ Ativa o tratamento de erros. Caso ocorra um erro no código (ex.: valores não encontrados), o programa continuará a execução sem interromper o macro.

Laço para Iterar sobre a Lista

vba

For a = 2 To sl.Cells(65536, 1).End(xlUp).Row

➡️ Este laço percorre todas as linhas da coluna A na planilha "liste", começando da linha 2 até a última célula preenchida (usando End(xlUp) para encontrar a última linha ocupada).

Inicializando Variável e Buscando Correspondência

vba

sat = 0 ' Inicializa a variável que armazenará a linha da correspondência.
sat = Sd.Columns("A").Find(sl.Cells(a, 1)).Row

➡️ Aqui:

  • A variável sat é inicializada com 0.
  • A função Find() procura na coluna A da planilha "data" por um valor que corresponda ao da célula atual em "liste".
  • Caso a correspondência seja encontrada, sat armazenará o número da linha onde o valor foi encontrado.

Verificação de Correspondência

If sat = 0 Then
MsgBox “<” & sl.Cells(a, 1) & “> ESTOQUE CODIFICADO NÃO FOI ENCONTRADO NOS REGISTROS”
Exit Sub
End If

➡️ Se sat for igual a 0 (nenhuma correspondência encontrada):

  • Exibe uma mensagem informando que o valor não foi encontrado (usando MsgBox).
  • Encerra o macro com o comando Exit Sub.

Preenchendo os Resultados

sf.Cells(a, 1) = Sd.Cells(sat, 5).Value ‘ Copia valor da coluna 5.
sf.Cells(a, 2) = Sd.Cells(sat, 6).Value ‘ Copia valor da coluna 6.
sf.Cells(a, 3) = Sd.Cells(sat, 7).Value ‘ Copia valor da coluna 7.
sf.Cells(a, 4) = Sd.Cells(sat, 2).Value ‘ Copia valor da coluna 2.
sf.Cells(a, 5) = Sd.Cells(sat, 4).Value ‘ Copia valor da coluna 4.
sf.Cells(a, 6) = Sd.Cells(sat, 3).Value ‘ Copia valor da coluna 3.
sf.Cells(a, 7) = sl.Cells(a, 2) ‘ Copia o valor da coluna B de “liste”.
sf.Cells(a, 8) = sf.Cells(a, 6) * sf.Cells(a, 7) * 6 ‘ Realiza cálculo.

➡️ Para cada linha na lista, os valores da linha correspondente na planilha "data" são copiados para a planilha "form", nas respectivas colunas (1 a 7). Além disso:

  • A coluna 8 realiza um cálculo com os valores copiados, multiplicando os dados da coluna 6, coluna 7, e o número 6.

Encerrando o Laço

Next a

➡️ Finaliza a iteração atual e passa para a próxima linha da planilha "liste".

3. Aplicação Prática

Este macro é útil para cenários em que:

  • Você possui uma lista de dados para verificar (ex.: códigos de estoque na planilha "liste");
  • Deseja encontrar e extrair informações correspondentes em uma base de dados maior (planilha "data");
  • Necessita preencher automaticamente outra planilha (planilha "form") com os resultados encontrados.

4. Agradecimento Final

Queridos alunos, espero que esta aula tenha sido uma oportunidade de aprendizado valiosa! Entender cada linha de um código VBA é fundamental para desenvolver suas habilidades de programação e aplicação prática em planilhas. Continuem se esforçando e aprendendo, pois o conhecimento é o caminho mais poderoso para a evolução.

📘 Prof. Expedito Marcondes 📧 Tire-Dúvidas: [email protected]

🚀✨ Até a próxima aula, prontos para desbravar ainda mais o universo do Excel VBA!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *