Copiar Dados Com Base na Seleção – VBA

Copiar Dados Com Base na Seleção – VBA

O que demonstraremos nesse tutorial é um código VBA que consegue copiar dados com base em uma seleção definida pelo usuário.

Você seleciona qualquer conteúdo de uma planilha, desde que esteja em uma coluna e durante o término da seleção, esse conteúdo é automaticamente copiado para uma coluna específica a sua escolha.

Você pode usar esse código para ganhar tempo em seus trabalhos e estudos no Excel.

Função IF com MSGBOX no VBA

Baixe a planilha para praticar o que foi ensinado neste tutorial:

Faça Download da planilha abaixo.

Autorizo a coleta e o tratamento dos meus dados para envio de material, inclusive publicidade, e adequação de minha experiência sobre produtos e/ou serviços da NINJA DO EXCEL, conforme informações prestadas AQUI


Copiar Dados Com Base na Seleção – VBA

A coluna que usaremos de exemplo é essa:

Copiar Dados

Pode ser qualquer coluna, desde que você selecione quais dados pretenda copiar. Iremos selecionar toda essa coluna acima, desconsiderando o cabeçalho. E ao completar a seleção, seus dados serão automaticamente copiados para a coluna “E”.

Veja abaixo:

Copiar Dados, seleção

Sempre que você completar a seleção e soltar o botão esquerdo do mouse, os dados serão copiados automaticamente para a coluna “E”.

Agora, vamos conferir o código que realiza esse procedimento:

Copiar Dados, código

Você deve ter se perguntado, se os dados serão sempre copiados para a coluna “E” e se existe alguma forma de mudar o local, por exemplo, colocando em outra coluna de sua preferência.

A resposta é sim! Tem jeito de mudar esses parâmetros dentro do código do VBA.

Vamos Entender o Código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range): Inicialização do código, onde o mesmo está sendo aplicado dentro da planilha ativa do Excel;

Range(“E:E”).ClearContents: Limpa os dados anteriores, antes dos novos dados serem copiados e colados na coluna específica. Você pode mudar os parâmetros “E:E”, que no caso se refere a coluna de onde os dados serão limpos e especificar outra coluna de sua preferência;

For Each c In Selection: Cria um loop entre a seleção e cada dado selecionado;

x = x + 1: x = A soma de x+1, para cada loop uma soma é feita, até completar o total de dados que foram selecionados;

c.Copy Range(“E” & x + 1): A letra “c” se refere a cada conteúdo encontrado dentro da seleção, no caso esse conteúdo é copiado e colado dentro da coluna “E”. Você pode mudar a letra “E” da coluna e especificar outra letra conforme a coluna de onde os dados serão colados;

Next c: Esse trecho, faz parte do loop;

End Sub: Finaliza o código.

Veja um breve exemplo, caso os dados forem colados em outra coluna:

Nesse quesito, os dados serão colocados na coluna “G”

  • Range(“G:G”).ClearContents
  • c.Copy Range(“G” & x + 1)

colunas

Então, você pode especificar qual coluna receberá o conteúdo copiado. Tudo que você precisa saber é informar a letra correspondente a coluna.


Curso de Excel Completo: Do Básico ao Avançado.

Quer aprender Excel do Básico ao Avançado passando por Dashboards? Clique na imagem abaixo e saiba mais sobre este Curso de Excel Completo.

Curso de Excel Completo Ninja do Excel

Por fim, deixe seu comentário sobre o que achou, se usar este recurso e você também pode enviar a sua sugestão para os próximos posts.

Até breve!

Artigos Relacionados Ao VBA: