Blog

Postado em em 21 de fevereiro de 2019

Copiar e Colar VBA – Copy e PasteSpecial VBA – Compilação de Vendas

Caso prefira o conteúdo de Copy e PasteSpecial no formato de vídeo-aula clique nesse link!

O que é o VBA?

VBA é a sigla para Visual Basic for Applications que nada mais é do que uma linguagem de programação. Essa linguagem nos permite programar certas ferramentas, funções, ações, tarefas… Pode também auxiliar a automatizar processos como o que veremos a seguir!

Essa programação é uma série de escritas chamadas de código que indicam para o programa o que desejamos fazer, ou seja, teremos algumas funções próprias do programa para auxiliar na programação e assim atingir nosso objetivo.

Quando utilizar o VBA?

O VBA tem diversas aplicações, mas para o nosso caso iremos utilizar o VBA para facilitar um processo de Copiar e Colar, ou seja, deixaremos esse processo automático utilizando apenas um botão ao invés de termos que selecionar as células, ir em outra aba e colar. Vamos fazer todas essas ações utilizando o VBA.

Para nosso exemplo temos três planilhas: Resumo, SP e RJ. A planilha de Resumo contém todas as vendas das outras duas planilhas. E nosso objetivo é sempre que colocarmos alguma venda em uma das duas abas SP ou RJ clicar em um botão e automaticamente copiar e colar o que foi escrito para a aba resumo.

Abaixo temos a aba Resumo com todas as vendas de SP e RJ

Em seguida temos a aba de SP.

E por fim temos a aba do RJ.

Como utilizar o VBA?

Para utilizarmos o VBA primeiramente precisamos abrir o ambiente VBA, temos duas formas de fazer isso: a primeira é indo até a guia desenvolvedor e clicando na opção Visual Basic e a outra forma é utilizando o atalho ALT + F11 (ALT + Fn + F11 caso a primeira opção não funcione). Feito isso irá abrir uma janela do ambiente VBA.

Para podermos escrever o nosso código é necessário criar um novo módulo, para isso basta ir na guia inserir e depois em módulo.

Feito isso temos nosso módulo para escrevermos o código em VBA. O código utilizado está na imagem abaixo.

Neste código temos 8 linhas, e abaixo vamos explicar o que cada uma delas faz dentro do Excel para que possamos cumprir nosso objetivo de copiar e colar nossos dados.

Linha 1 – Temos o nome da nossa macro, ou seja, colar_resumo.

Linha 2 – Temos uma variável chamada linha. Uma variável nada mais é um espaço na memória que recebe e armazena algum valor. No exemplo, a variável linha vai receber o número da linha da última célula preenchida da coluna A.

A estrutura Range é utilizada para se referir a uma célula ou a um intervalo específico. No caso, foi utilizado o Range(“A1”) para se referir à célula A1 dentro do Excel. Já o End(xlDown) é utilizado para ir até a última célula preenchida de uma sequência. Como a célula de início foi a célula A1, o Excel irá até a última célula preenchida da coluna A, partindo da célula A1.

A última informação do código é o .Row, que simplesmente retorna a linha da célula selecionada. Isto é, na aba RJ, a última célula preenchida na coluna A é a célula A8, logo o .Row dessa célula retornaria o valor 8.

Resumidamente, essa linha de código faz com que a variável linha receba o número da linha da última célula preenchida na coluna A da aba selecionada.

Linha 3 – Após ter descoberto a linha da última célula preenchida da coluna A é feita uma seleção, utilizando a estrutura Range, que vai da célula “A linha” até a célula “D linha”. Ou seja, se a última compra foi anotada na linha 8, a variável linha receberá o valor 8, portanto a seleção será o intervalo A8:D8. Tendo selecionado o intervalo, o .Copy é utilizado para copiar o que estiver selecionado.

Linha 4 – Nesta linha é utilizada a estrutura Sheets para se referir a uma aba específica. No caso, foi feita uma referência à aba Resumo, pois é nela que vamos colar nossas informações. Para selecionar a aba referenciada basta usar o .Select ou .Activate.

Linha 5 – Agora temos outra variável chamada linha_resumo que vai fazer algo semelhante ao que foi feito para a variável linha. A única diferença é que será somado 1 ao valor da linha encontrado para que tenhamos o número da primeira célula vazia da tabela da aba Resumo.

Linha 6 – Iremos selecionar a célula “A linha_resumo” com a estrutura Range, ou seja, para o exemplo acima selecionaríamos a célula A16 da aba Resumo. Depois disso, com o .PasteSpecial as informações serão coladas na célula selecionada.

Linha 7 – Selecionamos a célula A1.

Linha 8 – Término da macro.

Resumindo

Nossa macro irá pegar a última linha que escrevemos na aba SP ou RJ. Vai copiar esses dados e colar após o último dado escrito na aba Resumo. Vamos iniciar colocando um novo produto na aba RJ.

Acrescentamos na linha 9 o produto Calcinha na nossa tabela, agora iremos rodar a macro, no primeiro momento vamos rodar manualmente depois atribuiremos um botão. Para fazer isso basta ir na guia desenvolvedor e em seguida selecione a opção macros. Feito isso será aberta uma janela com as macros gravadas, basta selecionar a macro e clicar em executar.

Pode-se observar que ao executar a macro o Excel muda a aba para Resumos, cola o nosso produto que foi adicionado e seleciona a célula A1 para deixar como padrão.

Podemos fazer o mesmo teste acrescentando mais um produto na aba SP agora.

E agora executando a macro temos o mesmo resultado, os dados são acrescentados na aba resumo sem substituir nenhum dado, apenas acrescentando!

Para finalizar podemos criar um “botão” para não ter que toda vez ir até a guia desenvolvedor e selecionar a macro para utilizá-la. O “botão” nada mais é do que uma forma ou imagem. Neste caso iremos inserir uma forma retangular no Excel. Para isso, basta ir na guia Inserir, clicar em Ilustrações e depois em Formas.

Agora basta clicar e arrastar para fazer o retângulo. Em seguida basta escrever o que deseja no botão para indicar o que ele faz e formatar da forma que desejar. Para finalizar iremos clicar com o botão direito nesta forma e selecionar a opção atribuir macro.

Uma nova janela será aberta, a janela de macros, basta selecionar a macro desejada e pressionar ok. Feito isso seu “botão” estará criado, agora toda vez que clicar neste retângulo a macro será executada.

Para finalizar é necessário copiar esse botão para a outra aba, e toda vez que acrescentar um novo produto basta clicar no botão que ele irá automaticamente acrescentar na aba de resumo. Para copiar esse botão basta clicar com o botão direito no botão, clicar em Copiar, ir até a aba em que se deseja colar e utilizar o atalho CTRL+V.

Para saber mais sobre Copy e PasteSpecial e outros assuntos de Excel, acompanhe que vamos enviar outros posts.



Quer aprender tudo de Excel para se tornar o destaque de qualquer empresa?