como posso bloquear o cursor para célula específica e focar apenas uma célula específica usando o código VBA no Excel

0

Eu tenho uma lista de nomes em uma coluna de planilha.

 A
---
Robby
Harry
Nick

Em qualquer célula, quando eu digito um nome e clico em outra célula. Se o nome digitado não estiver presente na lista, o foco não deverá ser movido para outra célula. Eu não deveria ser capaz de selecionar outra célula ou mover o cursor. O cursor só deve ser focado na célula inserida. O cursor deve estar travado até que eu não entre o nome dado na lista. Uma vez que eu digite o nome em uma determinada lista, eu deveria ser capaz de mover o cursor para outra célula.

Então, como posso bloquear o cursor para uma célula específica e focar apenas para essa célula específica usando o código VBA no Excel.

    
por Vanditha 01.12.2015 / 17:32

1 resposta

1

Coloque as seguintes macros de evento na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("A:A")) Is Nothing Then
      v = Target.Value
      Dim r As Range
      If Range("A:A").Find(what:=v, after:=Range("A1")) Is Nothing Then
         Target.Select
         Stuck = True
         Set rStuck = Target
      Else
         Stuck = False
      End If
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Stuck Then rStuck.Select
End Sub

Coloque o seguinte em um módulo padrão:

Public Stuck As Boolean
Public rStuck As Range

Observe que esse código permitirá que você faça alterações na coluna A , mas aplique restrições às alterações em qualquer outra coluna.

    
por 01.12.2015 / 18:33