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.
Baixe a planilha para praticar o que foi ensinado neste tutorial:
Copiar Dados Com Base na Seleção – VBA
A coluna que usaremos de exemplo é essa:
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:
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:
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)
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.
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!