VBA (Excel) - Copiando dados entre planilhas


Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA para realizar a seguinte tarefa :

  • Copiar dados entre planilhas distintas usando uma macro

É uma aplicação simples que mostra aos iniciantes e interessados como automatizar tarefas no Microsoft Excel usando a linguagem VBA. Só isso.

O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office, bem como em outras aplicações da Microsoft, como o Visio, e que foi também incorporada pelo menos parcialmente em outros programas de terceiros como o AutoCAD, Mathcad e WordPerfect. Ele substitui e estende as capacidades de anteriormente existentes linguagens de programação de macros específicas para as aplicações e pode ser usado para controlar a quase totalidade dos aspectos da aplicação anfitriã, incluindo a manipulação de aspectos do interface do usuário tais como menus e barra das ferramentas e o trabalho com formulários desenhados pelo usuário ou com caixas de diálogo.
http://pt.wikipedia.org/wiki/Visual_Basic_for_Applications

Eu estou usando o Microsoft Office Excel 2007 e sistema operacional Windows 8, e portanto o código deste artigo foi testado somente nesta versão e ambiente.

Antes de prosseguir eu sugiro que você leia os seguintes artigos da seção VBA do site Macoratti .net

Os recursos usados no projeto deste artigo foram:

Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:

Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de segurança mais elevado pois códigos maliciosos podem ser executados em scripts através de macros no Excel.

Vamos ativar a guia do desenvolvedor e logo  em seguida habilitar a execução de macros.

Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:

Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme a figura abaixo;

A seguir clique na guia Opções do Excel para abrir a janela - Opções do Excel;

Nesta janela, selecione o item - Mais Usados - e a seguir marque o item - Mostrar guia Desenvolvedor na Faixa de Opções e clique no botão OK;

No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;

Na janela Central de Confiabilidade selecione a opção - Configurações de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:

Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.

Criando a planilha Excel e copiando dados entre planilhas

Abra então o Excel 2007 , será aberta uma planilha em branco. Clique então no botão no canto superior a esquerda para abrir o menu principal de opções;

Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;

Em seguida informe o nome do arquivo : VBA_CopiandoDadosEntrePlanilhas

Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3;

Vamos inserir alguns dados na planilha Plan2 a partir da célula A1 conforme mostra a figura abaixo:

Os dados foram copiados da internet e representa a tabela dos 5 primeiros colocados do campeonato brasileiro de futebol de 2014.

Nota: Você pode usar qualquer dados na planilha este foi apenas um exemplo.

Dessa forma a planilha Plan2 será a planilha origem a partir da qual desejamos copiar as informações para a planilha Plan1 a partir da célula A1.

Criando a macro para realizar a copia dos dados entre as planilhas

Com a planilha Excel aberta pressione as teclas ALT+F11. Se preferir clique no menu Desenvolvedor e a seguir na opção Visual Basic.

Isso abrira o Editor Visual Basic; No editor Visual Basic clique no menu Inserir e a seguir em Modulo;

Um novo Módulo chamado  Modulo1 será criado na área de trabalho do Editor.

Insira o código abaixo no módulo criado :

Clique no botão Salvar e salve o módulo com o nome : CopiarDadosEntrePlanilhas.

Nota : Poderíamos ter usado o código abaixo na nossa macro:

Sub copiarDadosEntrePlanilhas()
       Sheets("Plan2").Range("A1:J6").Copy Destination:=Sheets("Plan1").Range("1")
End Sub

Acabamos de criar uma macro que irá ser usada para copiar os dados entre as planilhas Plan2 e Plan1.

Estamos usando o método Range.Copy que copia o intervalo para o intervalo especificado ou para a Área de Transferência.

Como exemplo o código a seguir copia os dados da célula A1:D4 de Plan1 para as células E5 de Plan2 :

Worksheets("Plan1").Range("A1:D4").Copy destination:=Worksheets("Plan2").Range("E5")

O que é uma macro?

Uma macro é uma coleção de comandos que você pode aplicar com um único clique. As macros podem automatizar quase tudo que seja possível executar no programa que você está usando e até mesmo permitem fazer coisas que talvez você não soubesse que fossem possíveis.

As macros são programação, mas para usá-las, você não precisa ser um desenvolvedor e nem mesmo ter conhecimento de programação. A maioria das macros que você pode criar nos programas do Office é escrita em uma linguagem chamada Microsoft Visual Basic for Applications, ou VBA.

Em muitos programas do Office, você pode criar uma macro gravando uma série de ações ou escrevendo a macro. Foi isso que fizemos : escrevemos uma macro que será usada para copiar dados.

Agora para usar a macro criada vamos retornar à nossa planilha Excel.

Pressione ALT+F11 novamente, estando no editor Visual Basic, para retornar à planilha Excel.

Usando a planilha Plan1 clique na guia Desenvolvedor e a seguir na opção Inserir e selecionando o controle de formulário Botão:

Após selecionar o Botão coloque-o na planilha Excel. Fazendo isso de imediato será aberta a janela atribuir macro, exibindo a macro que criamos no  Módulo.

Selecione a macro CopiarDadosEntrePlanilhas e clique em OK;

Com isso atribuímos a macro CopiarDadosEntrePlanilhas criada ao botão de comando da planilha:

A seguir selecione o botão e altere o nome de Botão 3 para Copiar Dados;

Pronto ! agora podemos abrir a planilha Excel e clicar no botão para realizar a cópia dos dados da planilha Plan2 para a planilha Plan1 conforme abaixo:

Dessa forma mostramos como podemos usar código VBA para realizar a cópia entre duas planilhas distintas no Excel  2007.

Pegue a planilha com o código VBA aqui: CopiandoDadosEntrePlanilhas.zip

Jesus lhes respondeu, e disse: A minha doutrina não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade dele, pela mesma doutrina conhecerá se ela é de Deus, ou se eu falo de mim mesmo.
Quem fala de si mesmo busca a sua própria glória; mas o que busca a glória daquele que o enviou, esse é verdadeiro, e não há nele injustiça.

João 7:16-18

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??


José Carlos Macoratti