Página 1 de 1

VALIDAÇÃO DE DADOS COM DELETE

Enviado: 29 Set 2020 às 13:18
por Leonardo1234
Olá Pessoal,

Minha duvida é a seguinte: eu tenho uma validação de dados na qual o valor 1 sempre deve ser maior que o valor 2 e a regra que eu inseri funciona perfeitamente. Porém, quando eu dou delete na célula do valor 1, ela fica igual a zero, ficando menor que o valor 2, o que não poderia acontecer. Tem alguma forma da validação funcionar nesse caso também? Obrigado.

VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 00:51
por Estevaoba
Não sei se entendi corretamente, mas segue uma sugestão:
=OU($A$2="";$A$2>$B$2;"")

Good luck!

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 09:45
por osvaldomp
Me parece que só é possível via macro.

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 10:39
por Leonardo1234
Olá Pessoal,

Eu imaginei mesmo que teria que ser via macro, eu teria que abrir um novo topico na parte de macros ou vcs podem responder por aqui mesmo? Enfim, agradeço se tiverem uma solução. Estevaoaba, não está dando certo via formula, como eu disse o valor 1 sempre deve ser maior que o valor 2, porém quando o valor 2 é maior que zero, e eu dou um comando de delete no valor 1, o valor 1 fica igual a zero e menor do que o valor 2, o que não poderia acontecer. A macro portanto deveria permitir um comando de delete sobre o valor 1 apenas se o valor 2 for também igual a zero, pois dessa forma a condição valor1>valor2 se mantém. Agradeço se tiverem uma solução.

VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 10:47
por Leonardo1234
Correção, a condição valor1>valor2 não se mantém com ambos valores iguais a zero, pois o valor1 fica igual ao valor 2 e não maior como pede a condição. Portanto, além da macro permitir o delete no valor 1 apenas quando o valor 2 for igual a zero, deveria ser aberta uma nova regra de valor 1=valor2 ser permitido quando ambos são iguais a zero.

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 10:52
por osvaldomp
Experimente:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address <> "$A$2" Then Exit Sub
 If Target.Value = 0 And [B2] <> 0 Then
  Application.Undo
  MsgBox "NÃO PERMITIDO"
 End If
End Sub
obs. mantenha a regra de Validação

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 14:24
por Leonardo1234
Grande mestre, funcionou perfeitamente. Deixa só eu pedir um favor, eu converti aquele intervalo em uma tabela e arrastei a validação também. Tem como ajustar a macro para que ela funcione não só na linha 2, mas também nas linhas restantes que preenchem a tabela? Muito obrigado. Segue o anexo.

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 17:23
por osvaldomp
Olá, Eduardo.
Instale uma cópia do código abaixo no lugar do anterior.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(ActiveCell, [Tabela1].Columns(1)) Is Nothing Then Exit Sub
 If Target.Value = 0 And Target.Offset(, 1).Value <> 0 Then
  Application.Undo
  MsgBox "NÃO PERMITIDO"
 End If
End Sub
obs. o código irá atuar somente na primeira coluna da Tabela1, mesmo que a quantidade de linhas com dados seja aumentada no futuro e não atuará no cabeçalho.

Re: VALIDAÇÃO DE DADOS COM DELETE

Enviado: 01 Out 2020 às 18:01
por Leonardo1234
Está funcionando perfeitamente. Muito obrigado novamente.