Excel permitindo a exclusão do conteúdo da célula da célula validada pelos dados

1

Eu tenho uma planilha onde apenas as células que devem ser editadas são desbloqueadas, e toda a planilha é protegida. Uma das células em que a edição é permitida tem um conjunto de validação de dados, com base em uma lista de dois itens. A validação de dados é configurada para permitir um List e o intervalo apropriado para o Source .

A validação funciona em um ponto, em que a escolha de uma das duas opções na lista suspensa é aceita e a inserção de um valor não contido na lista é recusada.

O problema que estou tendo é que o Excel está me permitindo excluir o conteúdo da referida célula (o que eu não quero - eu quero sempre ter um dos dois valores na lista). Dentro da janela de validação de dados, tentei verificar e desmarcar a caixa de seleção Ignore blank , o que não parece ter efeito algum.

Idealmente , eu gostaria de fazer isso sem a necessidade de VBA , mas vou admitir se é o único jeito.

Aqui está um link para um exemplo de pasta de trabalho - para Option4x , você tem permissão para escolher uma das opções suspensas, mas não permissão para inserir texto aleatório. No entanto, você também tem permissão para excluir o conteúdo da célula (que eu não quero).

    
por Jonny Wright 15.12.2017 / 22:21

1 resposta

1

Validação de dados só verifica se os dados inseridos são conforme as regras / lista ou não. Como o Cell é editável, esse é o motivo pelo qual o Excel permite excluir os dados inseridos, mas não permitir a gravação da lista.

Se você não permitir que os dados validados sejam excluídos, será necessário desabilitar a tecla Delete. O código de exemplo abaixo escrito ajudará você a evitar os exercícios.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$C$9" Then Exit Sub
   If Len(Target.Value) = 0 Then
        Application.EnableEvents = False
          Application.Undo
        MsgBox "You can't Delete,,,!"
     Application.EnableEvents = True
   End If

End Sub

NB: Já que o Excel não tem nenhuma função poderia impedir a célula, neste caso somente o VBA funcionará.

    
por 18.12.2017 / 08:31