Detalhes em VBA que poucas pessoas sabem Parte 6

Loop ou Fórmula Aplicada em Bloco

Outras linguagens de programação VBA
Detalhes em VBA que poucas pessoas sabem Parte 6
Gutemberg S.
em 19 de Agosto de 2021

Você sabia que muitas das vezes, o loop em VBA que você faz para percorrer uma gama enorme de dados para poder classificá-los de alguma forma nem sempre é viável no código em VBA? Se não, Leia este artigo para saber mais. Me chamo Gutemberg, tenho experiência com VBA Excel a mais de 10 anos, e te convido nessa incrível jornada desta fantástica tecnologia!!

Pois bem! Abra um módulo padrão em seu VBE, Visual Basic Editor de dentro do seu Excel:

1º Passo – Com o seu excel aberto dê um Alt + F11, para abrir o VBE;
2º Passo – Em seguida insira um módulo através do menu/opção Inserir/Módulo;
3º Passo – Digite, ou copie, o seguinte exemplo básico abaixo dentro do módulo, este exemplo é apenas didático e servirá para comprovar o que estou falando, que serve para atribuição de fórmula em uma coluna inteira de forma dinâmica:

Sub loopFormulaBloco()

    Range("B1:B200000").FormulaR1C1 = "=COUNTIF(RC[-1],""*1*"")"

End Sub

4º Passo – Dê ‘F5’ para executar, ou clique no botão de executar que possui um desenho de uma seta verde apontando para a direita na parte superior do Editor. Note que, ele aplicará a fórmula “=CONT.SE(A1;”*1*”)” das células ‘B1’ até ‘B200000’. Neste caso, a fórmula está verificando se o número 1 aparece na célula, independente de posição na string, caso exista, ele retornará 1... Simples assim!!

Observe que estamos aplicando uma função nativa do excel em bloco ou coluna de uma vez só. Muitos ficariam tentados em fazer um laço, While, por exemplo, para atender a demanda, porém, nestes casos em que temos grandes volumes de dados os laços se mostram ineficientes no quesito tempo, pois, eles ficarão rodando célula por célula, o que demandará um certo tempo, coisa, que se você aplicar o truque aqui abordado, não vai ter problemas.

Já tive situações em que o Analista Sênior demorava quase 30 minutos para rodar um relatório em Excel por se utilizar de tal abordagem, a utilização de loops em VBA. Quando demonstrei e apliquei este truque, o relatório passou a ser feito em menos de 20 segundos.

Experimentem vocês mesmos em alguma planilha e vejam a agilidade que acontece, ou seja, a diferença das 2 técnicas. A utilização de loops é mais bonita de ser ver, porém, bem menos performática. Para se utilizar de um loop aqui, dica, pode utilizar o While com a função Instr para a verificação da existência de pelo menos 1 número “1” na célula, por exemplo.

Espero que tenham gostado e, se puder, deixarem aquele comentário ‘maroto’, ficarei grato.

Até a Próxima!!

1 hora ministrada
Gutemberg está online
Duque de Caxias / RJ
Professor apaixonado pela informática e pela programação com mais de 5 anos de experiência. Venha aprender com quem ama o que faz!!
Oferece aulas online (sala profes)
R$ 40 / aula
Conversar Whatsapp do professor Gutemberg S. Whatsapp do professor Gutemberg S. Ver WhatsApp
1ª aula demonstrativa
Cadastre-se ou faça o login para comentar nessa publicação.

Recursos Profes

O Profes é uma solução completa de aprendizagem, com diversos recursos para
você aprender do jeito mais eficiente e personalizado possível.

Se você quer encontrar um professor particular para combinar aulas particulares, datas, pacotes e preços, utilize o Aulas Profes.

Buscar professor

Se seu problema for dificuldade em uma lista de exercícios, projeto, planilhas, revisão de teses, TCC ou textos, peça uma ajuda pelo Tarefas Profes

Enviar Tarefa

Se você quer acessar um professor imediatamente, no formato chat com troca de arquivos, imagens, fotos, peça um Profes Já

Pedir Profes Já

Confira artigos similares

Confira mais artigos sobre educação

+ ver todos os artigos

Encontre um professor particular

Busque, encontre e converse gratuitamente com professores particulares de todo o Brasil