Selecionando uma célula ao lado da célula atual no excel

1

Estou fazendo um pequeno vba no excel que altera o valor das células em branco para "NO DATA". Isso é o que eu fiz até agora:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo hell:
Application.Goto reference:="DBtable"
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.SpecialCells(xlCellTypeBlanks).Value = "NO DATA"

'I DON'T KNOW WHAT TO PUT HERE

hell:
End Sub

O que eu gostaria de acontecer é que, sempre que eu adicionar um novo registro na minha tabela e ele contiver uma célula em branco, ele deve ser alterado imediatamente com o valor "NO DATA" e, em seguida, a seleção deve estar na próxima célula da última célula que eu modifiquei. O que está acontecendo agora é que depois de alterar a célula em branco para o valor que eu quero, ele seleciona a tabela inteira. Por favor me ajude!

    
por Kelvs 09.08.2016 / 07:26

1 resposta

0

Você pode usar Range.Offset para mover a seleção, e também pode melhorar seu código atual (atualmente, ele procura a tabela inteira para células vazias, não apenas o novo registro.

O código aprimorado:

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo Hell

    ' whenever I add a new record on my table and it contains a blank cell, 
    ' it should be changed immediately with the "NO DATA" value:
    Intersect(Target.EntireRow, Range("DBTAble")).SpecialCells(xlCellTypeBlanks).Value _ 
         = "NO DATA"

    '  then the selection should be on the next cell of the last cell I modified:
    Target.Offset(0, 1).Activate

    Exit Sub    

Hell:
    Err.Clear
End Sub
    
por 09.08.2016 / 08:19