Ir ao conteúdo
  • Cadastre-se

Excel VBA - Bloqueio de Celulas


Posts recomendados

Olá, sou leigo em Excel VBA, e estou com uma dúvida, arrumei um código que bloqueia as células preenchidas, só que...ela bloqueia a planilha inteira, e eu só queria que bloqueasse as seguintes células H4:L5000

 

 

 

O código é esse:

 

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)If ActiveCell.Value <> “” Then   ActiveSheet.Unprotect Password:=("senha")    ActiveCell.Locked = True    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=("senha")End IfEnd Sub
 
Link para o comentário
Compartilhar em outros sites

Experimente:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.Intersect(Target, Range("H4:L5000")) Is Nothing Or Target.Value = "" Then Exit Sub  ActiveSheet.Unprotect Password:=("senha")  Target.Locked = True  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=("senha")End Sub

 

Link para o comentário
Compartilhar em outros sites

Muito Bom Osvaldomp, só que tem 2 problemas: 

 

1. Se eu selecionar mais de uma célula da erro.... dai usei o "On Error Resume Next"

 

2. Não consigo alterar as Células depois..

 

 

Eu queria um jeito pra eu alterar depois... tipo, quando eu colocar a senha pra desproteger eu poder alterá-lo. 

Link para o comentário
Compartilhar em outros sites

 

1. Se eu selecionar mais de uma célula da erro.... dai usei o "On Error Resume Next"

Veja a solução mais abaixo.

 

2. Não consigo alterar as Células depois..

Eu queria um jeito pra eu alterar depois... tipo, quando eu colocar a senha pra desproteger eu poder alterá-lo. 

Tipo, após desproteger a planilha você consegue alterar o conteúdo de qualquer célula! (???)

 

solução para o item 1 acima:

 

substitua esta linha

If Application.Intersect(Target, Range("H4:L5000")) Is Nothing Or Target.Value = "" Then Exit Sub

por estas

If Application.Intersect(Target, Range("H4:L5000")) Is Nothing Or _  Target.Value = "" Or Target.Count > 1 Then Exit Sub
Link para o comentário
Compartilhar em outros sites

Sim, eu quero no momento em que eu desproteger a planilha, eu possa alterar o conteúdo de qualquer célula.

 

Sim, isso é normal no Excel. Qual a sua dificuldade para alterar células com a planilha desprotegida?

 

Você não informou o resultado da sugestão que postei para resolver o item 1. (???)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...