Protegendo uma célula, mas permitindo que a lista suspensa funcione

4

Eu quero proteger uma célula na qual tenho uma lista suspensa, mas ainda quero que a lista suspensa funcione.

Quando tento protegê-lo, o usuário não pode usar a lista suspensa para selecionar outros itens ou macros.

Eu recebo esta mensagem de erro

"A célula ou gráfico que você está tentando alterar é protegido e, portanto, somente leitura. Para modificar uma célula ou gráfico protegido, primeiro remova a proteção usando o comando Folha desprotegida (guia Revisão, grupo Alterações Você pode ser solicitado a fornecer uma senha. "

    
por johnnnieyy 08.06.2015 / 21:57

3 respostas

4

O menu suspenso é anexado à célula. É onde ele armazena os dados. A validação garantirá que os dados são válidos.

Se você ainda não fez isso, verifique se a célula não está bloqueada. Clique com o botão direito do mouse na célula e clique em formatar células e, em seguida, vá para a guia Proteção. A caixa de seleção Bloqueada deve estar desmarcada.

    
por 08.06.2015 / 22:13
0

No meu computador (PC executando o Excel 2010), a própria lista suspensa parece estar anexada à célula imediatamente à direita. Então, se eu quiser uma lista suspensa no A7, eu tenho que desbloquear tanto A7 quanto B7.

Isso pode ser um bug, mas é uma correção relativamente simples.

    
por 23.02.2016 / 16:35
0

Em folhas protegidas:

Cole o link abaixo na pasta de trabalho

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim wsh As Variant
    For Each wsh In Worksheets(Array("Sheet1"))
        wsh.EnableOutlining = True
        wsh.Protect UserInterfaceOnly:=True, Password:="", _
            DrawingObjects:=False, _
    Contents:=True, _
    Scenarios:=True, _
    AllowFormattingCells:=False, _
    AllowFormattingColumns:=False, _
    AllowFormattingRows:=False, _
    AllowInsertingColumns:=False, _
    AllowInsertingRows:=False, _
    AllowInsertingHyperlinks:=False, _
    AllowDeletingColumns:=False, _
    AllowDeletingRows:=False, _
    AllowSorting:=False, _
    AllowFiltering:=False, _
    AllowUsingPivotTables:=False
    Next wsh

Dim Oldvalue As String
Dim Newvalue As String

On Error GoTo Exitsub
If Target.Address = "$C$2" Then 'As required
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
    Else: If Target.Value = "" Then GoTo Exitsub Else
        Application.EnableEvents = False
        Newvalue = Target.Value
        Application.Undo
        Oldvalue = Target.Value
        If Oldvalue = "" Then
            Target.Value = Newvalue
        Else
            Target.Value = Oldvalue & ", " & Newvalue
        End If
    End If
End If


Exitsub:
Application.EnableEvents = True

End Sub
    
por 04.04.2017 / 06:35