Notifications
Clear all

VBA / MACROS RANGE

6 Posts
5 Usuários
0 Reactions
1,524 Visualizações
(@cacotta)
Posts: 11
Active Member
Topic starter
 

Sou iniciante.

Fiz 2 macros. A nr. 1 funcionou corretamente, selecionei as colunbas A1:C108. (Contorno Vermelho)

A nr. 2 não funcionou. Tive a intenção poder variar as variáveis do Range, sem precisar editar a macro toda vez que mudar o range. (contorno roxo)

Esqueci a planilha

Meus agradecimentos antecipadamente,
Carlos Cotta
Curitiba

Macro 1:

Sub RangeCopy()
  Range("A1":"C108").Copy
End Sub

Macro 2:

Sub RangeCopy()
    Dim col_var 'Neste caso representa a Coluna alfabética
    Dim lin_var 'Neste caso representam a Linha
    Dim lin_var1 'Neste caso representam a Linha
    
    col_var = P 'Coluna P     
    lin_var = 1 'Linha 1
    lin_var1 = 2 'Linha 2
Range(col_var & lin var& ":" & col_var & lin var1).Copy
End Sub
 
Postado : 19/12/2017 12:28 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Você quer copiar o intervalo indicado nas células P1 e P2, é isso?

Sub CopiaIntervaloV1()
 Range(Range("P1").Value & ":" & Range("P2").Value).Copy
End Sub

ou

Sub CopiaIntervaloV2()
 Range([P1] & ":" & [P2]).Copy
End Sub

e a forma correta da sua macro1 é esta:

Sub RangeCopy()
Range("A1:C108").Copy
End Sub

Osvaldo

 
Postado : 19/12/2017 5:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Carlos

Como você é novato, para facilitar a tua participação, sugiro tomar conhecimento do conteúdo dos links abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

[]s
Patropi - Moderador

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/12/2017 5:13 pm
(@mprudencio)
Posts: 2749
Famed Member
 

No lugar disso:

Macro 1:

Sub RangeCopy()
  Range("A1":"C108").Copy
End Sub

Tenta isto:

Sub RangeCopy()
Dim Linha as long

Linha = range("A" & rows.count).end(xlup).row

Range("A1:C" & Linha).Copy

End Sub

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 19/12/2017 5:18 pm
(@cacotta)
Posts: 11
Active Member
Topic starter
 

Funcionou corretamente a sua sugestão para as linhas.
O meu início será sempre a coluna A, mas se eventualmente eu quiser o range de A-F.
Eu preciso as variações tanto de linhas, quanto as variações de coluna.

Pela sua atenção, meu muito obrigado.
Carlos Cotta

 
Postado : 21/12/2017 1:19 pm
(@klarc28)
Posts: 971
Prominent Member
 
Sub RangeCopy()
Dim Linha as long

Linha = range("A" & rows.count).end(xlup).row

Range("A1:F" & Linha).Copy

End Sub



Sub RangeCopy()
Dim Linha as long
Dim ultimaColuna as Long 

    ultimaColuna = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

Linha = range("A" & rows.count).end(xlup).row

range(cells(1,1), cells(linha, ultimacoluna)).Copy

End Sub 


 
Postado : 21/12/2017 1:40 pm