Notifications
Clear all

Código para validar de célula selecionada está em um interva

6 Posts
3 Usuários
0 Reactions
1,156 Visualizações
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Boa tarde!

Gostaria de saber como se faz um código para validar se a célula selecionada está em um intervalo pré-definido, digamos, se a célula estiver dentro do intervalo o código continua, se estiver fora da uma mensagem e para.

Desde já grato,

 
Postado : 24/04/2014 10:15 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Explique mais, eu ainda não percebi sua dúvida :?

Att

 
Postado : 24/04/2014 10:19 am
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Digamos, seleciono uma célula, vou clicar no botão que tenha esse código, se a célula selecionada estiver dentro de um intervalo de células pré-definidas no próprio código ele dá sequencia no código, se não estiver no intervalo de células, ele para o código.

 
Postado : 24/04/2014 10:26 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Veja se é isso:

Sub testar_seleção_GT()

Dim alvo As Range
Dim intervalo As Range

Set alvo = Selection
Set intervalo = Range("A1:C3")
Set intervalo = Application.Intersect(alvo, intervalo)

If intervalo Is Nothing Then
    'seu código, caso a seleção NÃO esteja dentro do range
Else
    'seu código, caso a seleção esteja dentro do range
End If

End Sub
 
Postado : 24/04/2014 10:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Contribuindo,

Tambem pode ser utilizado no Evento da Aba :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Intersect(ActiveCell, Range("A1:A10")) Is Nothing Then

        MsgBox "A celula Ativa não pertence ao Range(A1:A10)"

    Else

        MsgBox "A celula Ativa pertence ao Range(A1:A10)"

    End If

End Sub

Ou via associação a um Botão :

Sub Teste_ActiveCell_Selecionada()

    If Intersect(ActiveCell, Range("A1:A10")) Is Nothing Then

        MsgBox "A celula Ativa não pertence ao Range(A1:A10)"

    Else

        MsgBox "A celula Ativa pertence ao Range(A1:A10)"

    End If

End Sub

É uma forma um pouco mais simplificada, poderiamos escrever de varias maneiras, uma delas como a do colega gtsalikis, mas depende tambem do que quer fazer apos a verificação.

[]s

 
Postado : 24/04/2014 11:16 am
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Muito obrigado pelas respostas.

Usei o seguinte:
If Intersect(ActiveCell, Range("C192:Q201")) Is Nothing Then
MsgBox "Selecione o valor da esquadria desejada."
Exit Sub
End If
Serviu perfeitamente :)

 
Postado : 24/04/2014 12:03 pm