Notifications
Clear all

Bloquear Células Formatadas

5 Posts
2 Usuários
0 Reactions
744 Visualizações
(@thicowfx)
Posts: 0
New Member
Topic starter
 

Bom dia,

Estive enfrentando um problema no escritório na última semana.
Montei uma planilha no intervalo C3:CM600, onde todas as colunas (exceto a primeira) estão pintadas de preto via formatação condicional. Quando o critério da primeira coluna é obedecido, outras colunas ficam brancas, mostrando os próximos locais que devem ser preenchidos.

Até aí tudo bem. Porém gostaria de bloquear toda célula nesse intervalo que esteja com o fundo preto (desabilitada). Caso as informações necessárias sejam preenchidas, as células ficariam brancas e a proteção seria retirada apenas nessas células. Seria possível fazer isso?

OBS: O bloqueio deverá ser retirado sempre que o critério condicional for obedecido e a coluna volte a ser branca (habilitada).
Caso não dê para criar tal código, há alguma sugestão que eu possa seguir?

 
Postado : 12/01/2016 9:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não sei se entendi, mas faça os testes

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("C3:CM600")) Is Nothing Then
        Dim c As Range
        Me.Unprotect "suaSenhaAqui"
        Application.EnableEvents = False
        For Each c In Me.Range("C3:CM600")
            If c.Interior.ColorIndex = 1 Then
                c.Locked = True
            Else
                c.Locked = False
            End If
        Next c
        Application.EnableEvents = True
        Me.Protect "suaSenhaAqui"
    End If
End Sub

Att

 
Postado : 12/01/2016 12:48 pm
(@thicowfx)
Posts: 0
New Member
Topic starter
 

Boa tarde,

Pelo que entendi do código, é essa linha de raciocínio, porém não funcionou. Estou disponibilizando um modelo semelhante ao original para análise. A senha do modelo é TESTE. Se pudesse me mostrar onde estou errando agradeceria imensamente.

O que desejo é, sempre que o fundo estiver preto, a célula esteja bloqueada.

 
Postado : 12/01/2016 1:37 pm
(@thicowfx)
Posts: 0
New Member
Topic starter
 

Testei a fórmula de algumas formas diferentes.
Acontece que o Excel não entende que as células pretas são pretas devido à formatação condicional nelas aplicada. Deve haver um jeito de fazê-lo parametrizar as células pretas via formatação condicional, e não manualmente pintadas.

 
Postado : 13/01/2016 2:26 pm
(@thicowfx)
Posts: 0
New Member
Topic starter
 

Consegui! Substituí o c.Interior.ColorIndex = 1 por c.DisplayFormat.Interior.ColorIndex = 1 (dica de um usuário de outro forum).
Porém, devido à complexidade do código e ao tamanho do intervalo, sempre que digito algo numa célula a planilha trava por uns 10 segundos para executar o código e estar operante novamente. Há algo que eu possa fazer para agilizar o código?

 
Postado : 14/01/2016 8:46 am