Ir ao conteúdo

Posts recomendados

Postado

Olá a todos!!

Estou montando uma planilha e pretendo compartilhar ela em rede e queria que nessa planilha ao preencher a celula a mesma ficasse bloqueada para alterações. Encontrei esse macro na Internet , porém só funciona na coluna Q queria que funcionasse da celula A3 até a G58, por favor.

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ColunasQ As Range
Set ColunasQ = Range("Q4:Q503")
If Not Application.Intersect(ColunasQ, Range(Target.Address)) Is Nothing Then
ActiveSheet.Unprotect ("m")
linha = Target.Row
Range("Q" & linha).Locked = True
ActiveSheet.Protect ("m"), DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub

 

 

A planilha vai em anexo...

Ofício.xlsx

Postado

 Já tentou colocar Range("A3:G58").Locked = True no lugar do Range("Q" & linha).Locked = True?

 Acho que deve funcionar

 

 Edit: muda a range do colunas pra Range("A3:G58") também

Postado

Não deu certo, o problema também é que quando se digita em qualquer célula da coluna Q toda a planilha fica bloqueada, eu queria que ficasse bloqueada a célula que foi preenchida somente.

Postado

Por algum motivo eu não consigo ver o código da macro na sua planilha, então não consigo testar nada.

 mas tenta trocar o código por esse:

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim ColunasQ As Range
 Set ColunasQ = Range(" A3:G58")
 If Not Application.Intersect(ColunasQ, Range(Target.Address)) Is Nothing Then
 ActiveSheet.Unprotect ("m")
 linha = Target.Adress
 Range(linha).Locked = True
 ActiveSheet.Protect ("m"), DrawingObjects:=True, Contents:=True, Scenarios:=True
 End If
 End Sub

 

 

 

 Se ainda não der certo ainda deixa o código todo da macro por escrito, incluindo os outros subs

Postado

Antes de instalar o código abaixo selecione toda a planilha (para selecionar clique no retângulo à esquerda da letra que identifica a coluna A) / clique com o direito sobre qualquer parte da selação / Formatar células ... / Proteção / desmarque Bloqueadas / OK

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect([A3:G58], Target) Is Nothing Then Exit Sub
 Me.Protect "m", UserInterFaceOnly:=True
 Target.Locked = True
End Sub

 

Postado

O código que passei deve substituir o código existente.:P

 

Postado

Na planilha do arquivo que você disponibilizou não há nomes.

A qual (ou quais) célula você se refere em que a proteção não está atuando ?

Postado

Essas células em branco em baixo de cada número, são campos para ser incluído o nome de cada pessoa que vai utilizar o número, por isso queria que a celula não pudesse ser alterada depois de preenchida para não dar problema de duplicidade dos números. A planilha será compartilhada em rede, então quando alguém precisar de algum número de ofício terá que colocar seu nome em baixo do respectivo número.

 

Eu percebi que nas celulas onde estão os numeros está funcionando da maneira que eu queria, mas nas celulas em branco onde quero que funcione não esta funcionando

Postado

Estranho. Parece um "bug" com as linhas 4, 6, 8, ...

O código está realmente bloqueando as células naquelas linhas. Se você preencher uma célula, em seguida desproteger a planilha / Formatar células / Proteção ~~~> ela é mostrada como Protegida e apesar de protegida ela aceita edição.🤔

 

Fiz 3 testes aqui:

1. inseri uma planilha vazia no seu arquivo, Plan1, copiei da Planilha1 e colei na planilha vazia. Desbloqueei todas as células e colei o código no módulo da Plan1.O problema também ocorre nela, pois a colagem carregou a formatação original.

2. inseri uma nova planilha vazia, Plan2, copiei da Planilha1 e colei como valores. Idem, idem, e aí o problema não ocorre.

3. excluí na Planilha1 as linhas 4 e 6 e voltei a incluí-las e aí o problema não ocorre.

 

Então me parece que as linhas 4, 6, 8, ... estão com problemas na sua planilha.:tw_smirk:

  • 10 meses depois...
Postado

@BrunoDimeira Boa tarde, estou com a mesma demanda de planilha que a sua. A sua planilha está no Google Docs ou apenas no excel? teria como compartilhar comigo essa planilha? Tenho uma planilha de agendamento de serviços e preciso que as celulas bloquem assim que o cliente fizer o agendamento. Obrigado! 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!