Bom dia Galera!
Atendento a um pedido, adaptei o seguite para apenas bloquear a celula que contém dado, um amigo precisa que após a celula fosse editada ela ficasse bloqueada e as demais celulas livres para edição e que pudesse ser alterada apenas inserindo a senha de acesso.
Código:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ColunasC As Range
Set ColunasC = Range("C2:f20000")
If Not Application.Intersect(ColunasC, Range(Target.Address)) Is Nothing Then
ActiveSheet.Unprotect ("Teste")
Linha = Target.Row
Range("c" & Linha).Locked = True
Range("d" & Linha).Locked = True
Range("e" & Linha).Locked = True
Range("f" & Linha).Locked = True
ActiveSheet.Protect ("Teste"), DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
Entendo o código:
Na linha: Set ColunasC = Range("C2:f20000") defina o intervalo que quer bloquear, digamos que vc queira bloquear da coluna A até a coluna H linhas 5000
Então altere o intervalo para: Set ColunasC = Range("A1:H5000")
Agora que alterou o intervalo que precisa acrescentar a seguinte linha do código para o tanto de coluna necessárias: Range("c" & Linha).Locked = True
o Intervalo é da coluna A ate a H então ficaria assim:
Range("A" & Linha).Locked = True
Range("B" & Linha).Locked = True
Range("C" & Linha).Locked = True
Range("D" & Linha).Locked = True
Range("E" & Linha).Locked = True
Range("F" & Linha).Locked = True
Range("G" & Linha).Locked = True
Range("H" & Linha).Locked = True
Uma linha para cada coluna.
Att,