Notifications
Clear all

VBA para Controle de Cursor

3 Posts
2 Usuários
0 Reactions
932 Visualizações
(@magber)
Posts: 14
Eminent Member
Topic starter
 

Senhores, cheguei a esta VBA até com a ajuda do Planilhando, mas agora não consigo alterar da forma que quero e sempre dá erro. Sou leigo no assunto VBA.

Programa Criado:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Row = 14 Then
If Target.Value = Range("Y35").Value Then
Cells(Target.Row + 2, Target.Column).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Row = 16 Then
If Target.Value = Range("AE35").Value Then
Cells(Target.Row - 2, Target.Column + 2).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
End Sub

Só que até então eu estava usando por linha, agora preciso usar por célula, ou seja, cada célula independente irá buscar um valor diferente, ficaria assim:

If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Row = C14 Then
If Target.Value = Range("Y35").Value Then
Cells(Target.Row + 2, Target.Column).Select
Else
Cells(Target.Row, Target.Column).Select

Depois:

If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Row = C15 Then
If Target.Value = Range("Y36").Value Then
Cells(Target.Row + 2, Target.Column).Select
Else
Cells(Target.Row, Target.Column).Select

Porém ao alterar ela entende que já não é Row mas sim Cell, porém não consegue ler e fazer o controle independente.

Poderia me ajudar por favor?

Agradeço desde já.

 
Postado : 28/07/2015 2:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mag, a instrução :
Target.Row - refere-se a linha, então o retorno será sempre o numero da linha em que foi digitado, se quer o retorno o endereço da celula tem de utilizar
Target.Address

então esta instrução :
If Target.Row = C14 Then
ficaria assim :
If Target.Address = "$C$14" Then - repare que neste caso temos de colocar as aspas

Faça os ajustes em sua rotina, teste e qualquer coisa retorne.

 
Postado : 28/07/2015 8:09 pm
(@magber)
Posts: 14
Eminent Member
Topic starter
 

Poxa Vida Mauro, corretíssimo.
Muito obrigado pela agilidade e acertismo.
Agora vou multiplicar pelas várias células e fechou.
Brigadão.

 
Postado : 29/07/2015 5:34 am