Fórum Validar CNS(Cadastra Nacional de Saúde) no Excel #540694
24/12/2015
0
Prezados, bom dia.
Preciso de um help no excel.
Desculpe por parecer um abusado que quer tudo na mão, mas eu preciso disso urgente, e nesse momento, não tenho tempo para aprender, tal conhecimento buscarei assim que a poeira baixar.
Preciso de uma ajuda para converter essa rotina de JAVA em uma fórmula para excel.
Alguém pode me salvar?
Segue:
Preciso de um help no excel.
Desculpe por parecer um abusado que quer tudo na mão, mas eu preciso disso urgente, e nesse momento, não tenho tempo para aprender, tal conhecimento buscarei assim que a poeira baixar.
Preciso de uma ajuda para converter essa rotina de JAVA em uma fórmula para excel.
Alguém pode me salvar?
Segue:
Rotina de validação de Números que iniciam com “1” ou “2”
// JavaScript Document
<!--
/*
*Chamar a rotina em um evento do form. Exemplo:
<input name="cns" type="text" title="cns" onChange="validaCNS(this.value)" value="cns" size="15" maxlength="15" />
*/
// Validação CNS
function validaCNS(vlrCNS) {
// Formulário que contem o campo CNS
var soma = new Number;
var resto = new Number;
var dv = new Number;
var pis = new String;
var resultado = new String;
var tamCNS = vlrCNS.length;
if ((tamCNS) != 15) {
alert("Numero de CNS invalido");
return false;
}
pis = vlrCNS.substring(0,11);
soma = (((Number(pis.substring(0,1))) * 15) +
((Number(pis.substring(1,2))) * 14) +
((Number(pis.substring(2,3))) * 13) +
((Number(pis.substring(3,4))) * 12) +
((Number(pis.substring(4,5))) * 11) +
((Number(pis.substring(5,6))) * 10) +
((Number(pis.substring(6,7))) * 9) +
((Number(pis.substring(7,8))) * 8) +
((Number(pis.substring(8,9))) * 7) +
((Number(pis.substring(9,10))) * 6) +
((Number(pis.substring(10,11))) * 5));
resto = soma % 11;
dv = 11 - resto;
if (dv == 11) {
dv = 0;
}
if (dv == 10) {
soma = (((Number(pis.substring(0,1))) * 15) +
((Number(pis.substring(1,2))) * 14) +
((Number(pis.substring(2,3))) * 13) +
((Number(pis.substring(3,4))) * 12) +
((Number(pis.substring(4,5))) * 11) +
((Number(pis.substring(5,6))) * 10) +
((Number(pis.substring(6,7))) * 9) +
((Number(pis.substring(7,8))) * 8) +
((Number(pis.substring(8,9))) * 7) +
((Number(pis.substring(9,10))) * 6) +
((Number(pis.substring(10,11))) * 5) + 2);
resto = soma % 11;
dv = 11 - resto;
resultado = pis + "001" + String(dv);
} else {
resultado = pis + "000" + String(dv);
}
if (vlrCNS != resultado) {
alert("Numero de CNS invalido");
return false;
} else {
alert("Numero de CNS válido");
return true;
}
}
-->
Rotina de validação de Números que iniciam com “7”, “8” ou “9”
function ValidaCNS_PROV(Obj)
{
var pis;
var resto;
var dv;
var soma;
var resultado;
var result;
result = 0;
pis = Obj.value.substring(0,15);
if (pis == "")
{
return false
}
if ( (Obj.value.substring(0,1) != "7") && (Obj.value.substring(0,1) != "8") && (Obj.value.substring(0,1) != "9") )
{
alert("Atenção! Número Provisório inválido!");
return false
}
soma = ( (parseInt(pis.substring( 0, 1),10)) * 15)
+ ((parseInt(pis.substring( 1, 2),10)) * 14)
+ ((parseInt(pis.substring( 2, 3),10)) * 13)
+ ((parseInt(pis.substring( 3, 4),10)) * 12)
+ ((parseInt(pis.substring( 4, 5),10)) * 11)
+ ((parseInt(pis.substring( 5, 6),10)) * 10)
+ ((parseInt(pis.substring( 6, 7),10)) * 9)
+ ((parseInt(pis.substring( 7, 8),10)) * 8)
+ ((parseInt(pis.substring( 8, 9),10)) * 7)
+ ((parseInt(pis.substring( 9,10),10)) * 6)
+ ((parseInt(pis.substring(10,11),10)) * 5)
+ ((parseInt(pis.substring(11,12),10)) * 4)
+ ((parseInt(pis.substring(12,13),10)) * 3)
+ ((parseInt(pis.substring(13,14),10)) * 2)
+ ((parseInt(pis.substring(14,15),10)) * 1);
resto = soma % 11;
if (resto == 0)
{
return true;
}
else
{
alert("Atenção! Número Provisório inválido!");
return false;
}
}
Observações:
1) Não existe máscara para o CNS nem para o Número Provisório. O número que aparece no cartão de forma separada (898 0000 0004 3208) deverá ser digitado sem as separações.
2) O 16º número que aparece no Cartão é o número da via do cartão, não é deverá ser digitado.
Filipe Silva
Curtir tópico
+ 0
Responder
Post mais votado
24/12/2015
Essa parece ser a solução
http://ramblings.mcpher.com/Home/excelquirks/snippets/scriptcontrol
Ou então, é necessário converto-lo manualmente para VBA;
http://ramblings.mcpher.com/Home/excelquirks/snippets/scriptcontrol
Ou então, é necessário converto-lo manualmente para VBA;
Fabiano Carvalho
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)