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
Forno 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.

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.
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:
<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:

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!

