Não basta ser bom, tem que ser o melhor.

Bloquear apenas celula após digitar

23/09/2010 11:28

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,