Página 1 de 1

Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 26 Abr 2021 às 15:02
por CAMILOALVES
Boa Tarde!
Funcionamento atual: digitam-se dados nas células “C14” ou “C15” ou “C16”, “C17” ou “C18” da planilha “Tempo Estimado Preventiva” clica-se nos respectivos botões de ação e os respectivos dados migram para a planilha “CALENDÁRIO” respectivamente para colunas “T”, “U”, “V”, “W”, “X”
Se Possível..........
Preciso bloquear algumas células da seguinte forma:
Nas colunas “T” à “X”, da planilha “CALENDÁRIO”, onde houver os caracteres “--------“ não deverá ser permitido a inclusão de dados via planilha “Tempo Estimado Preventiva” através dos botões de ações cujo origens sejam as células “C14” ou “C15” ou “C16”, “C17” ou “C18”, por exemplo: caso na planilha “CALENDÁRIO” na célula “W8” esteja com os caracteres “--------“ então não deverá ser permitido a entrada de dados via planilha “Tempo Estimado Preventiva”, neste caso para a célula “C17” e assim sucessivamente, onde houver caracteres “--------“ não permitir a digitação de dados via planilha “Tempo Estimado Preventiva”.
Desde já Agradeço!

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 26 Abr 2021 às 18:28
por CursoDeExcelGratis
vc poderia fazer algo mais ou menos assim

Private Sub Worksheet_Change(ByVal Target As Range)
for each celula in target

'desproteger a planilha
unprotec

if celula.text = "---" then
celula.locked = true
else
celula.locked = false
endif

'por ultimo proteger
protect

End Sub


Não cheguei a testar

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 27 Abr 2021 às 09:08
por CAMILOALVES
Bom Dia, Prezado CursoDeExcelGratis - 26 Abr 2021 às 19:28
Primeiramente Obrigado Por Dispor de Seu Tempo Para Ajudar-me.
Não funcionou, a ideia é o seguinte: cada equipamento tem sua data de manutenção estabelecida inicialmente podendo ser revista.
Então...
A ideia é que não permita cadastros indevidos na planilha “Tempo Estimado Preventiva” através das células “C14” ou “C15” ou “C16”, “C17” ou “C18”.
Como exemplo cito: “SLITTER|Elétrica” este equipamento tem manutenção programadas na semana (C14), mês (C15) e trimestre (C16), porém não há programa semestral (C17) e anual (C18) e que portanto estão com os caracteres “--------“ na planilha “CALENDÁRIO” nas células “W8” e “X8” e caso não haja bloqueio, poderá acontecer de um cadastro acidental para os períodos semestral e anual.
Atenciosamente

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 27 Abr 2021 às 14:17
por osvaldomp
#
Olá, por CAMILOALVES » 26 Abr 2021 às 16:02.
Segue uma sugestão, veja se aproveita. Fiz para um código, se o resultado for satisfatório, então aplique nos demais. ;)

No código AtualizaEQUIPAMENTO acrescente a linha em vermelho, conforme abaixo.

With WSP
If .Cells(WSPLinha, 20).Value = "--------" Then: MsgBox "OPERAÇÃO NÃO PERMITIDA": Exit Sub
.Cells(WSPLinha, 20).Value = WSIP.Range("C14").Value
End With

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 27 Abr 2021 às 15:44
por CAMILOALVES
Prezado osvaldomp - 27 Abr 2021 às 15:17
Muito Obrigado Por Dispor de Seu Tempo, Conhecimento e Dedicação Para Ajudar-me.
Então...
Funcionou Perfeitamente, ou seja, não permitiu a entrada de dados na planilha “CALENDÁRIO” quando houverem os caracteres “--------“.
Porém...
As células envolvidas na planilha “Tempo Estimado Preventiva” não estão sendo “resetadas”, ou seja, após a mensagem de bloqueio ela fica exibindo o dado digitado anteriormente.
Se possível, para esses casos, teria como fazer esses “reset’s.”?
Atenciosamente

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 27 Abr 2021 às 17:46
por osvaldomp
#
Salve, CAMILOALVES - 27 Abr 2021 às 16:44

Entendi, mesmo que for bloqueada a informação em CALENDÁRIO você quer limpar as células de origem, é isso?

Se sim, então na linha que passei antes substitua End Sub por GoTo fim

e acrescente a linha em vermelho, conforme abaixo.

Loop
fim:
WSIP.Range("C13").Value = ""

Re: Bloquear Célula Automaticamente Com Uma Condicional

Enviado: 28 Abr 2021 às 10:32
por CAMILOALVES
Prezado osvaldomp - 27 Abr 2021 às 18:46
Era isso mesmo, perfeito!
Muito Obrigado, Compartilhar Conhecimento é Semear Sabedoria.