For no VBA – Usando Estruturas de Repetição para Códigos Mais Eficientes

Você já sabe utilizar a estrutura de repetição for no VBA para deixar seus códigos mais eficientes e automáticos? Vem que eu te mostro!

O laço For no VBA repete um bloco de código um número definido de vezes. A forma mais comum é o For... Next: For i = 1 To 10 ... Next i executa o trecho dez vezes, com o contador i indo de 1 a 10. Há também o For Each, que percorre cada item de uma coleção, como todas as células de um intervalo.

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

O que você aprende neste vídeo

Resposta rápida: Nesta aula de VBA, o Diego ensina a estrutura de repetição For, para não ter que repetir a mesma ação linha por linha. Ele mostra o jeito ineficiente (repetir o código para cada linha) e o eficiente: um laço For que percorre todas as linhas automaticamente, aplicando a mesma lógica (ex.: verificar se cada célula é maior que um valor) em cada uma delas.

Neste vídeo (11 min):

  • 0:00 - A estrutura de repetição For no VBA.
  • 2:00 - O jeito ineficiente: repetir o código para cada linha.
  • 6:00 - O laço For: percorrer todas as linhas automaticamente.
  • 10:00 - Aplicar a mesma lógica em cada linha (ex.: verificar se é maior que um valor).

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

Fala, Impressionadores! Hoje vamos ver como lidar diretamente com a estrutura de repetição for next VBA!

Essa estrutura de repetição VBA vai te ajudar a executar ações de forma repetida por uma determinada quantidade de vezes.

Então, você não vai precisar copiar o seu código diversas vezes, tornando-o ineficiente em termos estruturais.

Portanto, utilizando essa estrutura você vai deixar seus códigos mais eficientes, e por consequência vai executar tarefas com mais rapidez dentro do Excel.

Vamos lá aprender essa estrutura For Next no VBA?

No início, temos uma tabela com datas registradas pela empresa fictícia de exemplo da aula de hoje. Além disso, temos o total de vendas feita em cada data.

Automação de repetição
Automação de repetição

O objetivo da aula de hoje é calcular, com automação de repetição (e eficiência), se um dia merece receber bônus referente a vendas ou não.

Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

O que vai orientar o bônus é: se o dia tiver vendas superiores a 5000 reais, terá 10% de bônus em relação ao total vendido (para aquele dia).

Para isso, desenvolvemos o código abaixo:

VBA
<strong>Sub bonificacao()</strong><br><br><strong>For linha = 2 To 17</strong><br><br><strong>    If Cells(linha, 2).Value > 5000 Then</strong><br><strong>        Cells(linha, 3).Value = Cells(linha, 2).Value * 0.1</strong><br><strong>    End If</strong><br><br><strong>Next</strong><br><br><strong>End Sub</strong>

Explicação do código acima:

Iniciar uma estrutura de repetição do tipo For, que vai realizar ações repetitivas, a partir da variável auxiliar “linha”, que vai do valor 2 até o valor 17 (totalizando 17-2+1 = 16 voltas).

A cada “volta” da estrutura de repetição de ações, o valor de “linha” é acrescentado em 1 unidade. Assim configuramos a estrutura para iniciar e acabar num determinado momento desejado.

As ações a serem repetidas são:

  • Comparar se o valor da 2ª coluna (coluna B), a cada linha representada pela variável “linha” é maior do que 5000. Caso seja:
    • A célula da 3ª coluna (coluna C) a cada “linha” vai receber o valor que está na mesma “linha”, mas na 2ª coluna (coluna B), multiplicado por 10% (0,10)
  • Seguirá fazendo as mesmas comparações e ações para todas as linhas, até a linha 17, quando a estrutura For acabará, e o código seguirá
  • Se encerra o código

Fazendo todas as ações explicadas acima, teremos o seguinte resultado se rodarmos o código  de uma vez:

VBA estrutura de repetição For no VBA
VBA estrutura de repetição For

Perguntas frequentes

1. Como usar o For no VBA?

Use a estrutura For contador = início To fim … Next. Por exemplo, For i = 1 To 10 executa o bloco dez vezes, e a variável i assume 1, 2, 3… até 10. Use Step para mudar o incremento, como For i = 2 To 20 Step 2.

2. Qual a diferença entre For Next e For Each no VBA?

O For… Next repete um número definido de vezes usando um contador numérico. O For Each percorre cada elemento de uma coleção (células, planilhas, itens), sem precisar saber a quantidade, sendo ideal para percorrer intervalos e objetos.

3. Como percorrer células com For no VBA?

Você pode usar For Each célula In Range(‘A1:A10’) para percorrer cada célula do intervalo, ou um For numérico com Cells(i, 1) variando o índice i. O For Each costuma ser mais legível quando o objetivo é tratar cada célula da seleção.

4. O que é o Step no laço For?

O Step define de quanto em quanto o contador avança. Sem Step, ele aumenta de 1 em 1. Com Step 2, vai de 2 em 2; com Step -1, conta de forma decrescente. É útil para pular valores ou percorrer um intervalo ao contrário.

Conclusão – For no VBA

Nessa aula você viu como utilizar a estrutura de repetição For para tornar seus códigos mais eficientes em VBA!

Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA, literalmente toda semana!

Hashtag Treinamentos

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


Quer aprender mais sobre VBA com um minicurso básico gratuito?