Notifications
Clear all

Localizar, copiar e colar.

9 Posts
3 Usuários
0 Reactions
1,698 Visualizações
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Senhores Bom Dia!

Preciso da ajuda de vcs.

Gostaria de uma macro que em uma planiha localize um codigo "X", que ao localizar este codigo ela copiasse a linha inteira e colasse em outra Aba do Excel.

Deixei um exmplo em anexo. É possivel fazer isso?

 
Postado : 02/07/2014 7:36 am
(@josewilton)
Posts: 2
New Member
 

se tiver como esse topico acima citado tbm me interesso!

 
Postado : 02/07/2014 11:54 am
(@edcronos)
Posts: 1006
Noble Member
 

Nesse caso se tem duas possibilidades
Find que vai localizar o código e retornar a linha que está, e copia a linha para a outra aba
ou por loop, que pode ser por célula ou dentro de um ARRAY
se for para procuras esporádicas find é a solução mais pratica e facil
se for para organizar milhares de linhas o loop em um ARRAY é mais rápido.

Mas como vai ser entrado o código para fazer a procura?
E como vai ser organizado na planilha consolidado?

vc pode ter uma ideia nesse tópico
viewtopic.php?f=10&t=11682&p=61613&hilit=find#p61613
download/file.php?id=12456

o exemplo está meio bagunçado, mas na minha planilha que nem uso mais find, ela pega as linha de outras abas

não precisa colocar tantas linhas "apenas umas 5", mas se puder poste um exemplo com nome real de todas as abas
e coloque algum exemplo de como vai ser organizado os valores achados

Até

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 02/07/2014 12:36 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

Nesse caso se tem duas possibilidades
Find que vai localizar o código e retornar a linha que está, e copia a linha para a outra aba
ou por loop, que pode ser por célula ou dentro de um ARRAY
se for para procuras esporádicas find é a solução mais pratica e facil
se for para organizar milhares de linhas o loop em um ARRAY é mais rápido.

Mas como vai ser entrado o código para fazer a procura?
E como vai ser organizado na planilha consolidado?

vc pode ter uma ideia nesse tópico
viewtopic.php?f=10&t=11682&p=61613&hilit=find#p61613
download/file.php?id=12456

o exemplo está meio bagunçado, mas na minha planilha que nem uso mais find, ela pega as linha de outras abas

não precisa colocar tantas linhas "apenas umas 5", mas se puder poste um exemplo com nome real de todas as abas
e coloque algum exemplo de como vai ser organizado os valores achados

Até

Edcronos Boa Tarde!

Obrigado pela resposta.

No exemplo que postei a aba "11.06" na verdade é um arquivo txt importado para o Excel, por isso tem muita quebra de linha.

Neste caso estou trabalhando apenas com 2 codigos que preciso localizar, copiar e colar: D661 e D761

Na aba "consolidado" iria ser usada para colar todos os codigos (D661 e D761) que localizei, logo a macro deveria ir até a primeira linha logo abaixo da que contenha algo escrito para que as informações de outras datas nao sejam sobrepostas.

Abraços

 
Postado : 02/07/2014 12:56 pm
(@edcronos)
Posts: 1006
Noble Member
 

bem não sei quantos (D661 e D761) tem sua planilha nem quantas planilhas são
mas (D661 e D761) vão estar juntos independe da ordem?
posso fazer para procurar um e depois o outro, tipo a macro vai procurar todos os d661 e depois o outro
ou tem que ser na ordem que achar?

bem vou fazer a macro aqui, mas talvez com o auto filtro e copiar de para fazer

mais uma questão vc falou que pode ter mais de 200000 linhas

e pelo que eu vi ativando o filtro tem muitos cod desses e find pode ser algo moroso, localizar copiar colar

existe padrão no numero de colunas, tipo todos vão até a coluna " O "?
ou tem muita variação?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 02/07/2014 1:09 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

mais uma questão vc falou que pode ter mais de 200000 linhas

e pelo que eu vi ativando o filtro tem muitos cod desses e find pode ser algo moroso, localizar copiar colar

existe padrão no numero de colunas, tipo todos vão até a coluna " O "?
ou tem muita variação?

Edcronos!

Respondendo as 2 mensagens:

Normalmente esses codigos aparecem independente e por grupo e em qualquer ordem do arquivo.

O que for mais facil fazer, ou por ondem ou conforme vai achando vai colando na consolidado.

Não terá variações de colunas pq estou importando arquivo texto (txt) já pré definido (tabulado de acordo com a minha necessidade). Neste caso o que pode variar é a quantidade de linhas, pode ser mais ou menos extenso.

Abraços e obrigado.

 
Postado : 02/07/2014 1:31 pm
(@edcronos)
Posts: 1006
Noble Member
 

desculpa a demora, estava marcando a maior bobeira com uma das variáveis, sem falar que pela minha péssima memoria tenho que ficar procurando como se escreve os comandos.
tenta aí

Sub procuracola()
    Dim n As Long, F As Long, Lin As Long


    Lin = Sheets("Consolidado").Cells(Rows.Count, 4).End(xlUp).Row
    F = Range(Cells(1, 4).End(xlDown), Cells(Rows.Count, 4).End(xlUp)).Rows.Count
    For n = 1 To F
        If Cells(n, 4).Value = "D661" Or Cells(n, 4).Value = "D761" Then
        With Sheets("Consolidado")
            .Range(.Cells(Lin, 1), .Cells(Lin, 16)).Value2 = Range(Cells(n, 1), Cells(n, 16)).Value2
            Lin = Lin + 1
            End With
        End If
    Next
End Sub

mas tem que ser rodada a partir da planilha que tem os codigos

Att

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 02/07/2014 2:14 pm
(@edcronos)
Posts: 1006
Noble Member
 

uma falha:
troque essas linhas

    Lin = Sheets("Consolidado").Cells(Rows.Count, 4).End(xlUp).Row
    F = Range(Cells(1, 4).End(xlDown), Cells(Rows.Count, 4).End(xlUp)).Rows.Count

por estas

    Lin = Sheets("Consolidado").Cells(Rows.Count, 4).End(xlUp).Row+1
    F = Range(Cells(1, 4), Cells(Rows.Count, 4).End(xlUp)).Rows.Count

a macro não verifica se aqueles valores já existe ou que já foi rodada na planilha
então somente pode ser rodada 1 vez em cada planilha a ser consolidada

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 02/07/2014 2:51 pm
(@digo203)
Posts: 117
Estimable Member
Topic starter
 

uma falha:
troque essas linhas

    Lin = Sheets("Consolidado").Cells(Rows.Count, 4).End(xlUp).Row
    F = Range(Cells(1, 4).End(xlDown), Cells(Rows.Count, 4).End(xlUp)).Rows.Count

por estas

    Lin = Sheets("Consolidado").Cells(Rows.Count, 4).End(xlUp).Row+1
    F = Range(Cells(1, 4), Cells(Rows.Count, 4).End(xlUp)).Rows.Count

a macro não verifica se aqueles valores já existe ou que já foi rodada na planilha
então somente pode ser rodada 1 vez em cada planilha a ser consolidada

Caraca amigo Edcronos!

Parabens! Funcionou sensacional.

Em poucas palavras. Muitissimo obrigado pela ajuda.

Abraços

 
Postado : 02/07/2014 4:09 pm