Notifications
Clear all

Bloqueio de celula apos ser preenchidas

3 Posts
2 Usuários
0 Reactions
1,103 Visualizações
(@danilodga)
Posts: 15
Active Member
Topic starter
 

Bom dia.

Eu conseguir bloquear as colunas B,C,D,E,F apos ser preenchidas, porém caso alguém erra uma digitação ou escolha uma opção errada por exemplo, nao tem como mais editar. Gostoria que me ajuda-se em algo que antes de bloquear, se tem como aparecer uma msg de confirmação ou o bloqueio do preenchimentos só ocorrer quando salvar a planilha, pois essa planilha vai ficar disponivel para mais usuários. Procurei em outros tópicos relacionados, mas não me ajudou muito. Desde já grato.

código que utilizo

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim vCelula As Range, vRegiao As Range
Set vRegiao = Intersect(Target, Union(Columns(2), Columns(3), Columns(4), Columns(5), Columns(6)))
If vRegiao Is Nothing Then Exit Sub
ActiveSheet.Unprotect
For Each vCelula In vRegiao
If vCelula <> "" Then
vCelula.Locked = True
Else
vCelula.Locked = False
vCelula.FormulaHidden = False
End If
Next vCelula
ActiveSheet.Protect
End Sub
 
Postado : 02/06/2016 6:16 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tente assim :

Para que seja efetiva, você tem de alterar a opção no Menu "Proteger Planilha" habilitando "Selecionar Celulas Bloqueadas", se não alterar não vai conseguir selecionar as celulas bloqueadas se quiser alterar-las.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim vCelula As Range, vRegiao As Range
    Dim sPrompt As String
    Dim opcaoBotao As VbMsgBoxResult
    
    Set vRegiao = Intersect(Target, Union(Columns(2), Columns(3), Columns(4), Columns(5), Columns(6)))
    
    If vRegiao Is Nothing Then Exit Sub
    
    ActiveSheet.Unprotect

    For Each vCelula In vRegiao
    
        If vCelula <> "" Then
                sPrompt = "Deseja Desbloquear a Celula!"
                opcaoBotao = MsgBox(sPrompt, vbYesNoCancel, "Edição de Celula")
    
                Select Case opcaoBotao
                    Case vbYes 'SIM
                        MsgBox "Alteração Confirmada", vbInformation, "SIM"
                        vCelula.Locked = False
                        vCelula.FormulaHidden = False
                    
                    Case vbNo 'NÃO
                        MsgBox "Alteração NÃO Confirmada", vbExclamation, "NÃO"
                        vCelula.Locked = True
                    
                    Case vbCancel 'CANCELADA
                        MsgBox "Operação Cancelada !!!", vbCritical, "CANCELADA"
                        
                End Select
            
            Else
                vCelula.Locked = False
                vCelula.FormulaHidden = False
            
        End If
        
    Next vCelula

    ActiveSheet.Protect

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/06/2016 8:11 am
(@danilodga)
Posts: 15
Active Member
Topic starter
 

conseguir resolver. Muito obrigado pela dica.

 
Postado : 02/06/2016 10:15 am