
Quero restringir os usuários a inserir apenas 0 ou 1 em uma planilha do Excel 2007.
Eu uso a caixa de diálogo Dados> Validação de dados para fazer isso, mas descobri que isso não os impede de inserir espaços em branco.
O que eu gostaria é que houvesse um aviso quando eles inserem espaços em branco, assim como aquele que aparece quando eles inserem qualquer outro dado que não esteja em branco que não seja 0 ou 1.
Pretendo preencher a planilha com 0santesaplicando a validação, portanto não deve haver problemas com dados errados.
Além disso, estou aberto a usar o VBA para corrigir esse problema.
Responder1
Este procedimento de evento de mudança examinará qualquer célula que tenha validação e exibirá a mensagem de erro da validação. Não funciona como validação porque não força uma "nova tentativa". Além disso, ele coloca um '1' lá se for excluído. Você poderia colocar o valor antigo lá, mas daria mais trabalho e geralmente é algo que tento evitar.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sForm As String
On Error Resume Next
sForm = Target.Validation.Formula1
On Error GoTo 0
If Len(sForm) > 0 Then 'has validation
If IsEmpty(Target.Value) Then 'cell was deleted
MsgBox Target.Validation.ErrorMessage, vbOKOnly, Target.Validation.ErrorTitle
Application.EnableEvents = False
Target.Value = 1
Application.EnableEvents = True
End If
End If
End Sub
Responder2
Deve haver uma opção nas configurações de validação de dados para "Ignorar em branco". Se você desabilitar (desmarcar) a opção, isso não fará o que você deseja?
Defina o DV para um número inteiro entre 0 e 1 e desmarque "Ignorar espaço em branco"