Blog

Postado em em 13 de novembro de 2020

Como Sair do Zero no VBA em apenas uma Publicação

Vou te mostrar em apenas uma publicação quais são os passos iniciais no Visual Basic para você aprender como sair do zero no VBA!

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

Para receber a planilha que usamos na aula no seu e-mail, preencha:

O que é o VBA e como vamos utiliza-lo?

O VBA (Visual Basic for Applications) é o ambiente do Excel em que podem ser criados, programados e utilizados códigos que façam operações no Excel de forma inteligente, automatizada, ou de formas mais complexas o que é feito normalmente com fórmulas do Excel (e também consegue fazer coisas que não podem ser feitas pelas fórmulas do Excel). Como queremos criar uma macro no VBA para fazer esses procedimentos, precisamos saber como abrir o ambiente do VBA no Excel.

Hoje vamos aprender a fazer uma programação em VBA para fazer uma compilação de informações de várias abas para uma só. Vamos entender o que são macros no Excel, os passos necessários para fazer nossos codigos VBA.

Como sair do Zero no VBA?

Em primeiro lugar, precisamos abrir o ambiente do VBA. Para fazer isso, precisaremos acessar a guia Desenvolvedor no Excel. Caso ela ainda não esteja habilitada no seu Excel, faça o seguinte: vá em Arquivo -> Opções -> Personalizar Faixa de Opções -> Marcar caixinha Desenvolvedor (lado direito) -> Clicar em OK. Com ela habilitada, iremos na guia desenvolvedor e clicaremos em Visual Basic (também temos o atalho Alt(+Fn)+F11).

Como queremos criar uma macro, ou seja, um código para realizar ações no Excel no ambiente do VBA, precisaremos criar um módulo. O módulo é a unidade que armazena as macros. Para começar tudo, iremos abrir o VBA (Alt+(Fn)+F11). Em seguida iremos na guia Inserir, e clicar em Módulo, para começar um módulo novo (Módulo 1, por padrão), em branco, onde iremos escrever nosso código.

O código abaixo representa o final do nosso código pronto, apresentado no vídeo:

Sub MinhaMacro()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each aba In ThisWorkbook.Sheets

    If aba.Name <> "Resumo" Then

       ult_linha = aba.Range("A1000000").End(xlUp).Row   

        aba.Range("A2:C" & ult_linha).Copy

        pri_linha_resumo = Sheets("Resumo").Range("A1000000").End(xlUp).Row + 1

        Sheets("Resumo").Range("A" & pri_linha_resumo).PasteSpecial

    End If


Next

MsgBox ("Código Finalizado")

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub

Explicação do código – Como Sair do Zero no VBA:

A partir desse módulo em branco, iremos começar uma nova Sub (subrotina), que será o nome do nosso código. Ao inserir “Sub (nome do nosso código)” e dar Enter, automaticamente é preenchido um End Sub no final do código. O código vai ser sempre o que estiver escrito entre Sub e End Sub. Demos o nome para nossa macro de MinhaMacro.

As duas primeiras linhas dizem respeito à rapidez da execução do código. São duas instruções referentes à aplicação (Excel). A primeira quer dizer para a tela não ser atualizada, ao trocar de abas ou realizar mudanças de tela (subir, descer no Excel, por exemplo). A segunda quer dizer que as fórmulas serão forçadas a ficarem com cálculo manual (e não automático, como padrão), assim a cada passo da macro elas não se recalculariam.

Após, iniciaremos a estrutura de repetição For. Na estrutura for, passaremos a instrução para o nosso código para que ele abra aba a aba da nossa planilha (aba in Thisworkbook.Sheets – aba como unidade do conjunto de abas Thisworkbook.Sheets).

Antes de entrar em cada aba, iremos usar a estrutura If para verificar se aquela aba tem o nome diferente da aba Resumo, porque não queremos entrar nem mexer na aba de Resumo. Queremos entrar nas outras e trazer as informações para a aba Resumo. Então, a informação de “aba” tem que ser diferente de “Resumo”.

O objetivo é entrar em cada aba, pegar as informações das tabelas e trazer para a aba (tabela) Resumo, então é isso que nossa estrutura de repetição For vai fazer. Ao entrar numa aba específica, iremos buscar a última linha preenchida da coluna A daquela aba específica, e armazenaremos essa informação na variável “ult_linha”. Lembre-se que aqui queremos pegar tudo que está preenchido para passar para a aba Resumo.

Em seguida, a estrutura For irá copiar as informações presentes no intervalo entre a célula A2 e a última célula da coluna C, representada pela variável “ult_linha”.

Após isso, iremos buscar a primeira linha vazia na aba Resumo, a partir da célula A1000000 e dando um Ctrl pra cima, e pegando a linha imediatamente abaixo dessa, ou seja, a primeira linha vazia da aba Resumo e armazenaremos na variável “pri_linha_resumo”. Assim, colaremos as informações copiadas nesse local, abaixo das últimas informações preenchidas, independentemente de qual aba estivermos.

A partir daqui, iremos colar as informações na célula referente à primeira linha vazia da coluna A, representada por A & pri_linha_resumo. A

A partir desse ponto, a estrutura For irá repetir os passos acima, desde entrar em cada aba, até colar as informações achadas em cada aba na aba resumo para todas as abas encontradas com nome diferente de “Resumo”.

Com todos os passos feitos da estrutura For, iremos seguir com a nossa macro. Em seguida, ela mostrará uma mensagem em uma caixa escrito “Código Finalizado” para o usuário da planilha entender que o código já fez todos os procedimentos necessários.

Após esses passos, serão desativados os comandos dados para a aplicação no começo da nossa macro. Ou seja, serão ativados o cálculo automático das fórmulas, e a atualização de tela do Excel. Em seguida temos a instrução “End Sub”, que representa simplesmente o fim da nossa sub, explicada no começo.

Após fechar o nosso código, devemos criar um botão para que a nossa macro seja ativada, ao clicar nesse botão. Ele será o ativador e disparador da nossa macro. Para isso, no Excel iremos na guia Inserir > Ilustrações > Formas > Retângulo: Cantos Arredondados (2º ícone da categoria de Retângulos). A partir dessa escolha, redimensione a ilustração de acordo com o seu gosto, e pronto.

Após isso, vamos personalizar o botão. Para isso, iremos dar um clique com o botão esquerdo do mouse nele, e escreveremos o que desejamos que esteja escrito nele. No nosso exemplo, escrevemos “RODAR COMPILAÇÃO”, fomos na guia Página Inicial, e botamos o alinhamento no meio e centralizamos o texto, além de colocar em negrito. Para finalizar, iremos colocar um sombreamento, indo em Formato de Forma > Efeitos de Forma > Predefinição > Predefinições > Predefinição 2. E colocamos a cor em azul (cor de preferência).

Após criar e personalizar o botão da forma que queremos, devemos dizer que macro estará atribuída a ele. No caso, queremos atrelar o botão à nossa macro “MinhaMacro”. Para isso, devemos clicar com o botão direito do mouse no nosso botão criado -> Atribuir macro… -> clicar em MinhaMacro -> OK. E pronto, agora o nosso botão está ativado e pode ser usado para disparar a macro a partir de qualquer clique nele com o botão esquerdo.

Ao final da nossa compilação, teremos as três colunas preenchidas na aba Resumo com as informações de todas as outras abas respectivas, e nosso código fez isso de forma muito rápida e eficiente.

Somente nessa aula aprendemos uma grande diversidade de conceitos e aplicações de códigos do VBA juntos que fizeram diversas coisas, com objetivo de compilar informações de várias abas numa só.

Assim, com apenas uma aula você acaba percebendo que pode fazer diversas coisas com essa ferramenta incrível e claro como sair do zero no VBA . Não deixa de aprender mais coisas para complementar seu aprendizado. Siga nosso canal do Youtube para mais conteúdo!

Hashtag Treinamentos

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


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