Notifications
Clear all

Selecionado uma Range usando váriaveis

4 Posts
2 Usuários
0 Reactions
3,919 Visualizações
(@jose_da_silva)
Posts: 24
Eminent Member
Topic starter
 

Caros amigos tenho uma aplicação onde dentro de um loop eu irei selecionar um intervalo de células e depois colorir este intervalo, sendo que a coluna será uma variável. Só que não funciona. Seria mais ou menos isso que eu fiz :

Range(col_var & "47" & ":" & col_var & "48" & "," & col_var & 50).Select

Tentei usar a função "UNION" e também não deu ->

Set range_var = Union(Range(col_var & "47"), Range(col_var & "48"), Range(col_var & "50"))
range_var.Select

O interessante é que quando a linha é uma variável, a instrução funciona ->

Range("C" & lin_var & ":" & "R" & lin_var).Select

O que estou fazendo de errado ?

 
Postado : 14/03/2012 7:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Caso alguém não responda...
Poste todo o código que está usando..

Att

 
Postado : 14/03/2012 8:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O erro está nas definições das Variaveis, e uso das mesmas na rotina na Propriedade Range, veja na ajuda do VBA sobre RANGE e CELLS.

Exemplificando :

Propriedade RANGE:

Sub PropriedadeRange()

    Dim col_var 'Coluna

    col_var = "C" 'Refere-se a Letra da COLUNA
    
    'Range(col_var & "47") significa =Range(Coluna, Linha)
    Set ColRange = Range(col_var & "47" & ":" & col_var & "48" & "," & col_var & 50)
    
    'Seleciona a Coluna, para colorir não é necessário
    ColRange.Select

    'ou, Usamos somente
    ColRange.Interior.ColorIndex = 3

End Sub

Propriedade CELLS:

Sub PropriedadeCells()
    'Deixei a mesma variavel só para entender
    Dim col_var 'Neste caso representa a Coluna Numerica
    
    Dim lin_var 'Neste caso representam a Linha
    Dim lin_var1 'Neste caso representam a Linha
    Dim lin_var2 'Neste caso representam a Linha
    
    col_var = 3 'Coluna 3 (C)
     
    lin_var = 47 'Linha 47
    lin_var1 = 48 'Linha 48
    lin_var2 = 50 'Linha 50
    
    'Cells(lin_var, col_var) = significa = Cells(Linha,Coluna)
    Set ColRange = Application.Union(Cells(lin_var, col_var), Cells(lin_var1, col_var), Cells(lin_var, col_var))
    
    'Seleciona a Coluna, para colorir não é necessário
    ColRange.Select

    'ou, Usamos somente
    ColRange.Interior.ColorIndex = 10

End Sub

O interessante é que quando a linha é uma variável, a instrução funciona ->
Range("C" & lin_var & ":" & "R" & lin_var).Select

Neste caso, se definiu a Variável lin_var como sendo a Linha 2, a Propriedade Range entende como : Range("C2:R2").Select, ou seja, "C e R" =Columns, " e o Numero a Linha

[]s

 
Postado : 14/03/2012 8:56 pm
(@jose_da_silva)
Posts: 24
Eminent Member
Topic starter
 

Obrigado Mauro. Tudo resolvido. Estava me equivocando entre linha e coluna entre as funções Range e Cells.

 
Postado : 15/03/2012 11:35 am