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 :
|
É 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() |
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")
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# ??
|
Visão geral do modelo de objeto Excel: http://msdn.microsoft.com/pt-br/library/wss56bz7.aspx