... pois ao clicar no "Enter" a célula ativa passava a ser a próxima abaixo.
Só para não deixar dúvidas, se após Enter a célula ativa muda para a célula abaixo é porque o seu Excel está ajustado para isso, e essa mudança da célula ativa nada tem a ver com o código que passei.
Veja em ~~~> Arquivo | Opções | Avançado | Opções de edição.
Então, em lugar de "a célula ativa passava" é mais apropriado afirmar que "a célula ativa passa". 😉
Nesse caso pode ser utilizado o código abaixo, que dispensa o uso de Activate.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 3 Or Target.Column > 8 Then Exit Sub
ActiveSheet.Unprotect ("")
Cells(ActiveCell.Row - 1, 3).Resize(, 6).Locked = ActiveCell.Offset(-1).Value <> "": ActiveCell.Offset(-1).Locked = False
ActiveSheet.Protect ("")
End Sub
Postado : 15/08/2022 7:19 pm