Notifications
Clear all

Bloquear células com uma condição

4 Posts
2 Usuários
0 Reactions
1,827 Visualizações
(@mateusfiel)
Posts: 0
New Member
Topic starter
 

Olá,

Estou com uma planilha e dependendo do "Status" preciso bloquear as células em frente a este status, tipo, quando eu colocar Finalizado a linha fique bloqueada.

Pode também ser por "cor" ao invés da palavra "Finalizado", se a macro aceitar que a cor seja alterada por formatação condicional.

 
Postado : 15/10/2016 6:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Em seu modelo você tem quatro Condições, pergunto após setar como "Finalizado" será possível alterar o Status e desbloquear ?

[]s

 
Postado : 18/10/2016 1:11 pm
(@mateusfiel)
Posts: 0
New Member
Topic starter
 

Olá Mauro, não sei se entendi bem, vou tentar explicar melhor. A aba vai estar protegida, só as células de digitação estarão desbloqueadas. Quando eu colocar finalizado as células em frente (incluindo a própria célula com o nome "Finalizado") ficarão bloqueadas. Gostaria de uma Macro que fizesse isso.

Obs: Depois de Finalizado só poderia ser editado se desprotegesse a planilha.

 
Postado : 19/10/2016 7:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mateus, nas Celulas da Coluna "F" insira as Validações assim não precisa digitar e cole a rotina abaixo no Modulo da Aba Inicio (clique com o botão direito na guia e selecione Exibir Código e na janela que abrir cole a rotina)

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim srg As Range
    Dim sCol
    Dim sRow
    Dim sValor
    Dim sLin As Long
    Dim resultado As VbMsgBoxResult
    Dim sValorF As String
       
    sCol = Target.Column 'Coluna
    sRow = Target.Row 'Linha
       
    'Verifica se a coluna "F" (6) foi a selecionada
    If sCol = 6 Then
           
        'Desprotege a aba
        ActiveSheet.Unprotect
        'se quiser colocar senha use o de baixo
        'ActiveSheet.Unprotect "senha123"
           
        'Captura o Valor Selecionado
        sValorF = Target.Value
           
        'Se valor igual a "FINALIZADO"
        If sValorF = "FINALIZADO" Then
                
            'Pergunta se quer continuar
            resultado = MsgBox("Confirma Lançamento ?", vbYesNo, "Tomando uma decisão ...")
                   
            'Se resposta = SIM
            If resultado = vbYes Then
                    
                'Define o Range
                Set srg = Range("A" & sRow & ":F" & sRow)
                    
                'Bloqueia as celulas
                srg.Locked = True
                srg.Interior.Color = 65535
                'protege a aba
                ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
           
            'Se NÃO
            Else
               
                MsgBox "Cancelou"
                ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
                Exit Sub
               
            End If
            
        End If
        
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        'se quiser colocar senha use a linha abaixo
        'ActiveSheet.Protect Password:="senha123", DrawingObjects:=True, Contents:=True, Scenarios:=True
        
    End If

End Sub

Qualquer duvida retorne.

[]s

 
Postado : 19/10/2016 11:41 am