Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Bloqueio de Células Condicional

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
CAMILOALVES
Colaborador
Colaborador
Mensagens: 73
Registrado em: Sex Mar 09, 2018 2:12 pm

Bloqueio de Células Condicional

Mensagem por CAMILOALVES »

Boa Tarde!
Solicitação de Ajuda!
Favor Verificar Se é Possível Fazer Uma Macro Para Quando na Célula "G5" da planilha “Inserir OS” estiver com o status = "Cancelada" ou "Encerrada" não permitir entrada de dados nas células: "F6", "F7", "F8"
Desde Já Agradeço
Anexos
OS.rar
(514.21 KiB) Baixado 156 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Bloqueio de Células Condicional

Mensagem por srobles »

CAMILO,

Primeiramente, experimente bloquear as células desejadas da guia em questão, e, no evento Change da guia, adicione :

Código: Selecionar todos

    If Not Intersect(Range("G5"), Target) Is Nothing Then
        If LCase(Target.Value) = LCase("encerrada") Or LCase(Target.Value) = LCase("cancelada") Then
            ActiveSheet.Protect "1234"
        Else
            ActiveSheet.Unprotect "1234"
        End If
    End If
Acredito, que com poucas adaptações, você consiga chegar ao resultado desejado.


CAMILOALVES
Colaborador
Colaborador
Mensagens: 73
Registrado em: Sex Mar 09, 2018 2:12 pm

Re: Bloqueio de Células Condicional

Mensagem por CAMILOALVES »

Prezado srobles » Qui Ago 13, 2020 5:14 pm, Bom Dia!
Grato Por dispor de seu tempo para ajudar-me
Então......Talvez não tenha me expressado direito, a ideia é que quando na Célula "G5" da planilha “Inserir OS” estiver com o status = "Cancelada" ou "Encerrada", que somente as células: "F6", "F7", "F8" sejam congeladas, impedindo quaisquer entrada de dados para essa combinação situação.
Se Possível Peço Rever Seu Código.
Atenciosamente


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Bloqueio de Células Condicional

Mensagem por srobles »

CAMILO,

O método que informei acima, faz exatamente isso.

Teste o modelo em anexo e retorne ok?
Anexos
OS.zip
(311.44 KiB) Baixado 148 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


CAMILOALVES
Colaborador
Colaborador
Mensagens: 73
Registrado em: Sex Mar 09, 2018 2:12 pm

Re: Bloqueio de Células Condicional

Mensagem por CAMILOALVES »

Bom Dia! srobles » Sex Ago 14, 2020 12:25 pm
Obrigado por dispor de seu tempo para ajudar-me.
Considerações iniciais...
O sistema permite que o usuário troque os status das OS por diversas vezes ao longo do processo, mas não deverá permitir que esses status sejam mais manuseados caso os valores da célula “G5” sejam iguais a “Cancelada’ ou “Encerrada”.

Favor considerar algumas observações abaixo que já existem no sistema:
1) Note que na planilha original, existe uma Proc que tem por objetivo identificar o último status de uma determinada OS na planilha “Registro de OS”, portanto essa funcionalidade deve ser mantida, observei que Você alterou essa célula para o sistema de combobox atribuindo alguns status;
2) Observe também que na planilha original “Inserir OS” já existia uma macro que tem por função não permitir a escolha de outro status na célula “F7” a não ser o status “Cancelada’ ou “Encerrada” em caso da célula “F6” for preenchida, essa macro tem por função inibir o usuário que por engano tente preencher a célula “F6” com status diferente de “Cancelada’ ou “Encerrada “ em caso de prosseguimento do processo da OS.
OBS: Notei que Você retirou essa macro, dado ao exposto acima, Ela (macro) deve ser mantida;

Então...
O motivo da solicitação é “congelar”, ou seja, inibir entradas de dados de modo que o usuário não possa fazer quaisquer digitação nas células “F6”, “F7”, “F8” se na célula “G5” estiver com o status “Encerrada” ou “Cancelada”.
Favor verificar a possibilidade de integrar sua solução mantendo as citadas conforme considerações acima.

Atenciosamente


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Bloqueio de Células Condicional

Mensagem por srobles »

CAMILO,

1) Peço desculpas, pois não havia me atentado ao campo formulado (G5).
2) Adaptando o exemplo disponibilizado por mim anteriormente, funciona perfeitamente.

Fiz um breve teste utilizando o código postado por mim, usando o evento Calculate da guia em questão.

Veja se a forma abordada no seu modelo, atende sua demanda.
Anexos
OS.zip
(312.47 KiB) Baixado 152 vezes


CAMILOALVES
Colaborador
Colaborador
Mensagens: 73
Registrado em: Sex Mar 09, 2018 2:12 pm

Re: Bloqueio de Células Condicional

Mensagem por CAMILOALVES »

Boa Tarde! srobles » Seg Ago 17, 2020 7:35 pm
Obrigado por dispor de seu tempo e paciência para ajudar-me.
Então....
Notei que você alterou a rotina da formula da célula “G5” da planilha “Inserir OS” que era: =SE(F5="";"";PROC(9;1/('Registro de OS'!A8:I63999=F5);'Registro de OS'!I8:I99999)), OK!
Porem...
Como dito anteriormente, os status das OS se alteram com o passar do processo, e os novos status são determinados na célula “F7” da planilha “Inserir OS” que sempre que clicado no botão “Atualizar OS” esses novos status são enviados automaticamente para planilha “Registro de OS”
Faça o seguinte teste: Troque o último status (na planilha “Registro de OS”) de quaisquer OS, por exemplo, na OS 0003/2020 de “Aguardando Ferramenta” para “Em Execução”, a troca de status está se refletindo na célula “G5” da planilha “Inserir OS”, o Bug é o seguinte, não se consegue mais manusear a planilha, note que para esta situação (G5 = Em Execução) poder-se-ia dar continuidade ao processo, pois a OS 0003/2020 não está Cancelada ou Encerrada.
Caso seja possível, favor analisar.
Desde já agradeço


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder