Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Repetir um Codigo

Quero copiar informações de um arquivo para o outro porem não posso copiar tudo de uma só vez, já que é necessário repetir algumas informações. Então bolei o seguinte código, que ao meu ver esta gigante. até o momento, o código consegue copiar informações contidas na LINHA 2, Porem tem que se repetir nas demais linhas copiando da mesma forma. Existe uma forma de fazer isso sem ter que repetir o código varias e varias vezes?

https://imgur.com/a/BeicU Link da Img do Codigo.

 Workbooks.Open Filename:="C:\Users\RX\Desktop\pasta2.xlsx"
    Range("a2:b2").Copy
    Workbooks("Pasta1.xlsx").Activate
    Range("a1048546").Select
    ActiveCell.End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.PasteSpecial
    Workbooks("pasta2.xlsx").Activate
    Range("a2,c2").Copy
    Workbooks("pasta1.xlsx").Activate
    Range("a1048546").Select
    ActiveCell.End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.PasteSpecial

Codigo atual é esse, Funcionando a Linha 2, Agora tenho que Buscar da LINHA 3 Sucessivamente.

2 respostas
solução!

Oi Matheus, tudo bom?

Não sou nenhum especialista em VBA, mas você pode tentar realizar um laço de repetição com contador trocando o numero das linhas ou colunas. Algo como:

Dim i As Integer 
Workbooks.Open Filename:="C:\Users\RX\Desktop\pasta2.xlsx"
// estamos criando um laço de repetição que se repetira 10 vezes
For i = 1 To 10
    // aqui com o & estamos juntando o numero i com o texto a e b, assim geramos a1 depois a2, a3... etc a mesma ideia para b
    Range("a"&i&":b"&i).Copy
    Workbooks("Pasta1.xlsx").Activate
    Range("a1048546").Select
    ActiveCell.End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.PasteSpecial
    Workbooks("pasta2.xlsx").Activate
    Range("a"&i&",c"&i).Copy
    Workbooks("pasta1.xlsx").Activate
    Range("a1048546").Select
    ActiveCell.End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.PasteSpecial
Next i

Essa é uma forma bem pouco elaborada, mas acredito que mais visual, de se varrer por colunas

Se você quiser, existe também a forma de iterar com o for each aqui tem um tutorial da microsoft bem legal explicando como fazer esse tipo de loop tanto com linhas quanto com colunas=)

Qualquer problema é só falar.

Abraço =)

Não funcionou a parte do Range da erro.

https://imgur.com/a/nhiB2