Página 1 de 1

Auxílio código VBA | Seleção de intervalo

Enviado: 21 Mar 2018 às 23:28
por RodrigoRGC
Olá pessoal, estou com um problema em uma macro que estou criando e gostaria de compartilhar com vocês na tentativa de encontrar uma solução.

Vamos lá..

Preciso copiar um determinado valor em uma célula (por exemplo J2) e então colar na primeira célula de uma lista que vai de G38278:G40042. Após colar, tenho que usar o auto preenchimento para que o valor colado na primeira célula da lista seja transferido para as demais células da lista (até G40042). Consegui desenvolver a programação até aqui, porém queria otimiza-la da seguinte maneira:

1) Nem sempre minha lista vai terminar em G40042, às vezes pode ser em G41806 ou G43570, por exemplo (sempre em intervalos de 1764 linhas). Como programar para que a seleção não seja pré determinada (de G38278 a G40042), mas sim de G38278 até o último valor da coluna G com conteúdo.

Em suma, como fazer uma seleção onde eu não tenha um valor final fixo, mas sim na célula em que tiver o último conteúdo da coluna.

Espero que tenha ficado claro e conto com ajuda de vocês.
Se ficou alguma dúvida me escrevam que tento ser mais claro.

Obs.: código anexo

Sub Macro2()
'
Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
LR = Sheets("RESUMO").Cells(Rows.Count, 2).End(xlUp).Row
Range("J2").Select
Selection.Copy
Range("G" & LR - 1764).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("G38278:G40042") 'acredito que o essencial é mexer neste intervalo
Range("G38278:G40042").Select
'
End Sub

Obrigado

Auxílio código VBA | Seleção de intervalo

Enviado: 22 Mar 2018 às 06:33
por gfranco
Bom dia.
Sugiro postar seu arquivo com uma demonstração manual do resultado pretendido.
Para anexar, clique em +Resposta e, abaixo da janela de digitação, localize a opção "adicionar um anexo".

Auxílio código VBA | Seleção de intervalo

Enviado: 22 Mar 2018 às 08:10
por rit
Cara se no lugar do range fixo, você colocar a mesma coisa que colocou aqui no começo resolve...

RANGE FIXO
Selection.AutoFill Destination:=Range("G38278:G40042") 'acredito que o essencial é mexer neste intervalo
Range("G38278:G40042").Select

RANGE DINAMICO

.Cells(Rows.Count, 2).End(xlUp).Row

Só tem que ver a maneira certa de fazer mas o caminho acredito que seja esse.

Re: Auxílio código VBA | Seleção de intervalo

Enviado: 22 Mar 2018 às 09:30
por osvaldomp
Experimente
Código: Selecionar todos
Sub Macro2V2()
 Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
  LR = Cells(Rows.Count, 7).End(xlUp).Row
   Range("J2").Copy Range("G" & LR - 1763 & ":G" & LR)
End Sub

Re: Auxílio código VBA | Seleção de intervalo

Enviado: 23 Mar 2018 às 00:05
por RodrigoRGC
Perfeito!
Era exatamente neste intervalo que estava com dúvida em como inseri-lo.
Funcionou exatamente da forma que pensava..
Obrigado osvaldomp!
osvaldomp escreveu:Experimente
Código: Selecionar todos
Sub Macro2V2()
 Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
  LR = Cells(Rows.Count, 7).End(xlUp).Row
   Range("J2").Copy Range("G" & LR - 1763 & ":G" & LR)
End Sub