Function Valida_TE(NumTE As String) As Boolean
'------------------------------------------------------------------------------------------------------
'Esta função valida o Título de Eleitor, através do dígito verificador
'Autor: José Maria Macedo do Vale (www.guiadoeleitor.com.br)
'Baseada no artigo 12 da Resolução TSE nº 21538/2003
'------------------------------------------------------------------------------------------------------
Dim soma, resto, i, digito1, digito2 As Integer
If Len(NumTE) < 12 Then NumTE = String(12 - Len(NumTE), "0") + NumTE
If Len(NumTE) > 12 Then Valida_TE = False: Exit Function
'valida a unidade da federação do TE
If Val(Mid(NumTE, 9, 2)) < 1 Or Val(Mid(NumTE, 9, 2)) > 28 Then Valida_TE = False: Exit Function
'valida o primeiro dígito
soma = 0
For i = 1 To 8
soma = soma + Val(Mid$(NumTE, i, 1)) * (10 - i)
Next i
resto = soma Mod 11
If resto = 0 Then
If Mid(NumTE, 9, 2) = "01" Or Mid(NumTE, 9, 2) = "02" Then digito1 = 1 Else digito1 = 0
Else
If resto = 1 Then digito1 = 0 Else digito1 = 11 - resto
End If
If digito1 <> Val(Mid$(NumTE, 11, 1)) Then Valida_TE = False: Exit Function
'valida o segundo dígito
soma = 0
For i = 9 To 10
soma = soma + Val(Mid$(NumTE, i, 1)) * (13 - i)
Next i
soma = soma + digito1 * 2
resto = soma Mod 11
If resto = 0 Then
If Mid(NumTE, 9, 2) = "01" Or Mid(NumTE, 9, 2) = "02" Then digito2 = 1 Else digito2 = 0
Else
If resto = 1 Then digito2 = 0 Else digito2 = 11 - resto
End If
If digito2 <> Val(Mid$(NumTE, 12, 1)) Then Valida_TE = False: Exit Function
Valida_TE = True
End Function
Pergunta
Marcos-rj
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.