Página 1 de 1

Código p/ transferir dado de uma ABA para outra específica

Enviado: 04 Jan 2022 às 14:51
por Aurea
Boa tarde, gostaria de fazer o seguinte (utilizando o VBA):

Na primeira aba (dados gerais) de uma planilha tem uma coluna indicando o responsável por uma atividade X.

Aí, nas abas seguintes, vão ficar os tópicos que cada pessoa ficou responsável.
O que eu gostaria é que quando eu coloco o nome da pessoa na linha de uma atividade na aba de dados gerais, essa atividade vai automaticamente para a ABA que tem o nome dela.

Segue em anexo um rascunho.

Re: Código p/ transferir dado de uma ABA para outra específica

Enviado: 04 Jan 2022 às 16:41
por osvaldomp
Olá, @Aurea .

Instale uma cópia do código abaixo no módulo da planilha Dados gerais.
Para acessar o módulo clique com o direito na guia daquela planilha e escolha "Exibir Código".
#
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column > 2 Then Exit Sub
 If Application.CountA(Cells(Target.Row, 1).Resize(, 2)) < 2 Then Exit Sub
 Sheets(Cells(Target.Row, 2).Value).Cells(Rows.Count, 1).End(3)(2) = Cells(Target.Row, 1)
End Sub

Re: Código p/ transferir dado de uma ABA para outra específica

Enviado: 05 Jan 2022 às 09:33
por Aurea
Osvaldo, deu certinho aqui, mas vc se importaria em me explicar o código? :mrgreen: Já teve umas alterações aqui, dai eu gostaria de entender melhor pra eu mesma arrumar a partir de agora. Um exemplo da mudança é que ali onde é o colaborador já vai ser uma lista suspensa então acredito que vai mudar algo no código né? o número de colunas a serem transferidas tbm vai aumentar, algumas colunas depois do nome da pessoa vai ser acrescentado e dai querem que isso tbm vá pra outra aba. Acho que se vc me explicar como funciona eu possa conseguir. :D

Re: Código p/ transferir dado de uma ABA para outra específica

Enviado: 05 Jan 2022 às 11:47
por osvaldomp
Olá, @Aurea .
#
Aurea escreveu: 05 Jan 2022 às 09:33 Um exemplo da mudança é que ali onde é o colaborador já vai ser uma lista suspensa então acredito que vai mudar algo no código né? ~~~> Se a lista suspensa for relativa à Validação de Dados então não será necessário alterar o código.

o número de colunas a serem transferidas tbm vai aumentar, algumas colunas depois do nome da pessoa vai ser acrescentado e dai querem que isso tbm vá pra outra aba.
Nesse caso é necessário ajustar os comandos abaixo:
Target.Column > 2 ~~~> o número 2 se refere à coluna B
Resize(, 2) ~~~> o número 2 se refere a duas colunas, no seu exemplo, colunas A e B
Cells(Target.Row, 1) ~~~> aqui é necessário acrescentar Resize, com base na quantidade de colunas a replicar