Digito verificador dos Correios (AR, SEDEX)
16/12/2009
0
Fábio Barroso
Posts
08/08/2016
Hugo Soliz
SEI QUE JÁ FAZ TEMPO O SEU POST... MAS OUTROS PODEM PRECISAR!!! ;-)
Segue abaixo uma rotina que recebi de um anigo que trabalha com correios.
Esta em delphi. Talvez possa ajudar:
function DigitoMod11ECT(Numero: String): String;
const STR_CALC = '86423597';
var Soma, I, Resto: Integer;
begin
result:='';
Soma:= 0;
if Length(Numero) = 8 then begin
for I:=1 to 8 do
Soma:= Soma + StrToInt(Numero[I]) * StrToInt(STR_CALC[I]);
Resto:= Soma Mod 11;
if Resto = 0 then
result:= '5'
else if Resto = 1 then
result:= '0'
else
result:= IntToStr(11 - Resto);
end;
end;
08/08/2016
Hugo Soliz
Numa coluna (N2...) colocava os códigos e em outra (A2...), onde apliquei a fórmula, aparecia o código do AR já formatado e com o DV (Dígito Verificador)
Baseado no código em Delphi acima escrevi a seguinte fórmula >>>
=VALOR(CONCATENAR(N2;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)=0;5;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)= 1;0;11-MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)))))
As células da coluna "A" já estavam formatadas como número com o código de formato: "JO "#" "#" BR"
Assim, por exemplo, digitando na coluna N2 o número: "40651641"
obtenho como resultado na coluna em que colei a fórmula (A2): "JO 40651641 1 BR"
Espero que essa info seja de valia para alguém... valeu!!!
25/08/2017
Marcos Roberto
Numa coluna (N2...) colocava os códigos e em outra (A2...), onde apliquei a fórmula, aparecia o código do AR já formatado e com o DV (Dígito Verificador)
Baseado no código em Delphi acima escrevi a seguinte fórmula >>>
=VALOR(CONCATENAR(N2;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)=0;5;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)= 1;0;11-MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)))))
As células da coluna "A" já estavam formatadas como número com o código de formato: "JO "#" "#" BR"
Assim, por exemplo, digitando na coluna N2 o número: "40651641"
obtenho como resultado na coluna em que colei a fórmula (A2): "JO 40651641 1 BR"
Espero que essa info seja de valia para alguém... valeu!!!
Tentei fazer o mesmo no Excel e não consegui. O que será que eu errei?
18/07/2018
Sandro Lemes
Hoje já existe o WebService Nativo dos Correios, disponibilizado gratuitamente !
Vide o tópico:
https://www.devmedia.com.br/forum/consulta-cep-entre-outros-servicos-direto-no-webservice-dos-correios-a-partir-do-delphi-7-acima/591246
Att.
Sandro Lemes
Clique aqui para fazer login e interagir na Comunidade :)