Logo Hardware.com.br
Gazak
Gazak Novo Membro Registrado
4 Mensagens 0 Curtidas

Excel - Macro para copiar linhas de uma pasta de trabalho e colar em outra

#1 Por Gazak 29/03/2017 - 11:27
Boa tarde.

Sou muito novo nessa área de VBA e preciso demais de ajuda para resolver alguns problemas no meu trabalho. Vou tentar ser o mais claro e breve possível.

Tenho duas pastas de trabalho:

Pasta de trabalho "A" com Planilha "Ação"

Pasta de trabalho "B" com Planilha "Finalizadas"

Preciso de uma Macro para que ao abrir a Pasta de trabalho "B" pesquise dentro da Planilha "Ação" da Pasta de trabalho "A" as linhas que possuem a palavra "Finalizada" na coluna "H" e copie os conteúdos dessas linhas e cole na primeira linha disponível da Planilha "Finalizadas" da Pasta de trabalho "B". De maneira que, só sobreponha (copie em cima) uma linha na Planilha "Finalizadas" da Pasta de trabalho "B" se o conteúdo de ambas da coluna "A" seja o mesmo.

Exemplo: coluna "H" é o status do pedido na Planilha "Ação" da Pasta de trabalho "A" e quando for "Finalizada" vai para a Planilha "Finalizadas" da Pasta de trabalho "B". No entanto, mesmo finalizado, algum item pode ser trocado futuramente na linha em questão na Planilha "Ação" da Pasta de trabalho "A" e é a coluna "A" que contém o número do pedido. Ou seja, se o número do pedido na coluna "A" na Planilha "Ação" da Pasta de trabalho "A" for o mesmo essa linha deve ser colada sobre a linha que possui o mesmo número na coluna "A" na Planilha "Finalizadas" da Pasta de trabalho "B".

O ideal seria que este Macro da Pasta de trabalho "B" pudesse fazer a rotina acima mesmo com a Pasta de trabalho "A" fechada.

Utilizando os anexos como exemplo:

No caso, o que se deseja é que, por exemplo, os pedidos "5" e "6" (e suas linhas completas respectivas) da planilha "Ação" da Pasta de trabalho "A" sejam automaticamente copiadas e coladas na primeira linha disponível na planilha "Finalizadas" da Pasta de trabalho "B" quando a Pasta de trabalho "B" for aberta. Lembrando que os pedidos "5" e "6" devem ser copiados e colados na planilha "Finalizadas" da Pasta de trabalho "B" porque na coluna "H" de ambos os pedidos o status está como "Finalizada" e a macro da Pasta de trabalho "B" deve verificar isso.

Muito obrigado desde já para quem puder ajudar.

Anexos

Responder
Gazak
Gazak Novo Membro Registrado
4 Mensagens 0 Curtidas
#4 Por Gazak
31/03/2017 - 14:29
osvaldomp disse:
Uma questão idêntica a esta foi postada no fórum abaixo.
https://forum.baboo.com.br/index.php?/topic/785367-excel-macro-para-copiar-linhas-de-uma-pasta-de-trabalho-e-colar-em-outra/


Bom dia Osvaldo.

Primeiramente, muito obrigado pela disponibilidade e auxílio.

Fiz o procedimento que você sugeriu e o código resultante foi:
[code=vb]Sub Macro1()

Application.WindowState = xlMinimized
Windows("A.xlsm").Activate
Range("A5:L6").Select
Selection.Copy
Windows("B.xlsx").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$L$3").RemoveDuplicates Columns:=1, Header:=xlYes
ActiveWorkbook.Save
ActiveWindow.Close
End Sub[/code]
O resultado ao rodar o macro foi erro na linha em amarelo acima e a seguinte mensagem: Erro em tempo de execução '9': Subscrito fora do intervalo.

Outra observação é que, ao abrir o arquivo "A" o mesmo deveria selecionar automaticamente as linhas que possuem a palavra "Finalizada" na coluna"H"....e não eu marcar quais linhas devem ser copiadas.

Uma última dúvida....não seria mais fácil fazer o macro no arquivo "B"? De modo que quando o arquivo "B" fosse aberto o mesmo copiaria os dados mais recentes de "A".

Muito obrigado.
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal