Validação Personalizado, como usar?

Em Dados Validação, existe na aba Critérios, Permitir opção Personalizado, e campo para inserir Formula.

Alguém sabe como usar ?

Algum exemplo em uso ?

Descrição da imagem

A Ajuda nada diz sobre isso: file:///C:/Program%20Files/LibreOfficeDev%206/help/pt-BR/text/scalc/guide/validity.html?DbPAR=CALC#bm_id3156442

Estou usando Win10+LibO6.3.2.2

não consegui achar utilização ainda para este campo

Aparentemente esta desativado, seja o que por não tem ação alguma.

@schiavinatto , nada ainda por aqui

@Conras,

Respondida no ask_en por @mikekaganski - Validation Custom, how to use? - #4 by mikekaganski

.

Achei que seria algo mais útil …, por exemplo: Usaria a formula SE(E(A1<>"";B!<>"");A1+B1;""), preencheria a célula sem ter uma formula visível.

@schiavinatto agora entendi o objetivo deste opção. Ele pode ser de grande valia sim, principalmente sem situações de cadastro. Por exemplo: imagine um campo para digitação CPF, CNPJ, RG, etc, onde não irá utilizar Programação (Macro). Pode ser criada uma fórmula para validação destas informações neste item Personalizado. Sendo assim, caso o operador da planilha lançar alguma informação fora do padrão de validação, ela não permite seu preenchimento. Só há uma coisa falha nisso tudo: se o operador copiar o conteúdo fora, e colar na célula em validação, a mesma não é avaliada seguindo os critérios.

@schiavinatto coloque a seguinte fórmula no personalizado em A1, e digite seu CPF corretamente e incorretamente para ver como funciona

=SE(A1="";"";SE(SE(MOD((EXT.TEXTO(A1;1;1)*1)+(EXT.TEXTO(A1;2;1)*2)+(EXT.TEXTO(A1;3;1)*3)+(EXT.TEXTO(A1;4;1)*4)+(EXT.TEXTO(A1;5;1)*5)+(EXT.TEXTO(A1;6;1)*6)+(EXT.TEXTO(A1;7;1)*7)+(EXT.TEXTO(A1;8;1)*8)+(EXT.TEXTO(A1;9;1)*9);11)=10;0;MOD((EXT.TEXTO(A1;1;1)*1)+(EXT.TEXTO(A1;2;1)*2)+(EXT.TEXTO(A1;3;1)*3)+(EXT.TEXTO(A1;4;1)*4)+(EXT.TEXTO(A1;5;1)*5)+(EXT.TEXTO(A1;6;1)*6)+(EXT.TEXTO(A1;7;1)*7)+(EXT.TEXTO(A1;8;1)*8)+(EXT.TEXTO(A1;9;1)*9);11))&SE(MOD((EXT.TEXTO(A1;2;1)*1)+(EXT.TEXTO(A1;3;1)*2)+(EXT.TEXTO(A1;4;1)*3)+(EXT.TEXTO(A1;5;1)*4)+(EXT.TEXTO(A1;6;1)*5)+(EXT.TEXTO(A1;7;1)*6)+(EXT.TEXTO(A1;8;1)*7)+(EXT.TEXTO(A1;9;1)*8)+(EXT.TEXTO(A1;10;1)*9);11)=10;0;MOD((EXT.TEXTO(A1;2;1)*1)+(EXT.TEXTO(A1;3;1)*2)+(EXT.TEXTO(A1;4;1)*3)+(EXT.TEXTO(A1;5;1)*4)+(EXT.TEXTO(A1;6;1)*5)+(EXT.TEXTO(A1;7;1)*6)+(EXT.TEXTO(A1;8;1)*7)+(EXT.TEXTO(A1;9;1)*8)+(EXT.TEXTO(A1;10;1)*9);11))=(EXT.TEXTO(A1;10;1)&EXT.TEXTO(A1;11;1))))

Ok @Conras, perfeito, esta é uma maneira de usar. Sobre o exemplo do CPF, realmente se colar em cima a Validação já era, um caso que fiz para conferir CPF, era um formulário somente com os campos de preenchimento editáveis desprotegidos, em uma célula próxima do campo de CPF coloquei a validação que, se erro, o fundo da célula ficava vermelho, e nela tinha o texto na cor do formulário. Só chamava a Atenção.

@schiavinatto a ideia é essa mesmo. Tento o correto uso desta ferramenta, o operador não consegue nem digitar o conteúdo. Já pensou em colocar essa fórmula na formatação condicional? E for FALSO, pinta a célula de vermelho. Neste caso, reduziria a célula de validação.

@Conras, para o meu CPF da erro !!!

@schiavinatto, contém 0 (zero) como primeiro dígito?

@schiavinatto, contém 0(zero) como primeiro dígito? Se sim, precisa formatar a célula como texto e digitar com o 0(zero).

@schiavinatto, quanto ao erro apresentado no teu teste, atente para que a fórmula apresentada pelo @CONRADO, tal como publicada acima, tem uns errinhos, provavelmente derivados da publicação. Já aconteceu comigo que alguns caracteres que digito não aparecem na postagem.
Vou colocar a correta abaixo (Se me permites, Conrado)…

.

SE(A1="";"";SE(MOD((EXT.TEXTO(A1;1;1)*1)+(EXT.TEXTO(A1;2;1)*2)+(EXT.TEXTO(A1;3;1)*3)+(EXT.TEXTO(A1;4;1)*4)+(EXT.TEXTO(A1;5;1)*5)+(EXT.TEXTO(A1;6;1)*6)+(EXT.TEXTO(A1;7;1)*7)+(EXT.TEXTO(A1;8;1)*8)+(EXT.TEXTO(A1;9;1)*9);11)=10;0;MOD((EXT.TEXTO(A1;1;1)*1)+(EXT.TEXTO(A1;2;1)*2)+(EXT.TEXTO(A1;3;1)*3)+(EXT.TEXTO(A1;4;1)*4)+(EXT.TEXTO(A1;5;1)*5)+(EXT.TEXTO(A1;6;1)*6)+(EXT.TEXTO(A1;7;1)*7)+(EXT.TEXTO(A1;8;1)*8)+(EXT.TEXTO(A1;9;1)*9);11))&SE(MOD((EXT.TEXTO(A1;2;1)*1)+(EXT.TEXTO(A1;3;1)*2)+(EXT.TEXTO(A1;4;1)*3)+(EXT.TEXTO(A1;5;1)*4)+(EXT.TEXTO(A1;6;1)*5)+(EXT.TEXTO(A1;7;1)*6)+(EXT.TEXTO(A1;8;1)*7)+(EXT.TEXTO(A1;9;1)*8)+(EXT.TEXTO(A1;10;1)*9);11)=10;0;MOD((EXT.TEXTO(A1;2;1)*1)+(EXT.TEXTO(A1;3;1)*2)+(EXT.TEXTO(A1;4;1)*3)+(EXT.TEXTO(A1;5;1)*4)+(EXT.TEXTO(A1;6;1)*5)+(EXT.TEXTO(A1;7;1)*6)+(EXT.TEXTO(A1;8;1)*7)+(EXT.TEXTO(A1;9;1)*8)+(EXT.TEXTO(A1;10;1)*9);11))=(EXT.TEXTO(A1;10;1)&EXT.TEXTO(A1;11;1)))

A publicação não deixa aparecer o sinal de multiplicação (asterisco) entre cada “)” e o número sequencial (1, 2, 3…).
E no começo da fórmula, tava sobrando um SE(
Para garantir a formatação da célula onde será informado o CPF, em formatar célula, use ### ### ###-##

Ola @Jedison, na publicação deve-se usar a formatação Texto pré-formatado (ícone 101 010). Mas ela só funciona se antes da formatação tiver uma linha em uso normal. Veja acima, formatei sua publicação.

Valeu! Obrigado pela dica.
E a fórmula? Funcionou agora pra você?

Aliás, dá para reduzi-la um BOM BOCADO e, com o espaço sobrando, resolver aquele problema dos CPFs começando com 000: Veja como fiz:

SE(A1="";""; MOD( SE(EXT.TEXTO(A1;1;1)=0;0;(EXT.TEXTO(A1;1;1)*1)) + SE(EXT.TEXTO(A1;2;1)=0;0;(EXT.TEXTO(A1;2;1)*2)) + SE(EXT.TEXTO(A1;3;1)=0;0;(EXT.TEXTO(A1;3;1)*3)) + (EXT.TEXTO(A1;4;1)*4) + (EXT.TEXTO(A1;5;1)*5) + (EXT.TEXTO(A1;6;1)*6) + (EXT.TEXTO(A1;7;1)*7) + (EXT.TEXTO(A1;8;1)*8) + (EXT.TEXTO(A1;9;1)*9) ; 11) &  MOD((EXT.TEXTO(A1;2;1)*1) + (EXT.TEXTO(A1;3;1)*2) + (EXT.TEXTO(A1;4;1)*3) + (EXT.TEXTO(A1;5;1)*4) + (EXT.TEXTO(A1;6;1)*5) + (EXT.TEXTO(A1;7;1)*6) + (EXT.TEXTO(A1;8;1)*7) + (EXT.TEXTO(A1;9;1)*8) + (EXT.TEXTO(A1;10;1)*9) ; 11) = EXT.TEXTO(A1;10;2) )

Sim já esta funcionando, o segredo é formatar a célula de entrada de dados em Texto

Olá amigos.
Dois exemplos de aplicação prática que se pode imaginar para este recurso são os seguintes.

  1. Garantir que em dada lista não sejam repetidos valores.
    Com exemplo fica mais fácil: Imaginemos que se queira fazer uma lista de convidados para um churrasco, que não poderá ter mais que 100 convidados. A lista será digitada nas células A1:A100. Obviamente não se quer que um mesmo convidado figure duas vezes nesta lista.
    Selecione as Células A1:A100
    Em Dados/Validação use a opção PERSONALIZADA
    Em fórmula, digite: CONT.SE(A:A;A1)<2
    Pronto. Sempre que se digitar um nome que já está na lista, surgirá o aviso de VALOR INVÁLIDO, que pode ser personalizado nas guias apropriadas também.
  2. Também se pode usar o mesmo raciocínio para limitar uma lista de valores a serem digitados para que não ultrapasse determinado montante. Assim, em vez de formatar a célula da soma para emitir aviso, pode-se usar a VALIDAÇÃO PERSONALIZADA nas células de entrada (da lista) para que o valor da célula onde está soma não seja maior que determinado limite.
1 Like