Ir para conteúdo
Fórum Script Brasil
  • 0

Validação Cnpj, Cpf E Inscrição Estadual Nacional


Guest Alex Sandro Rodrigues Lopes

Pergunta

Guest Alex Sandro Rodrigues Lopes

Public Function ChekCPF(CPF As String)
    On Error Resume Next
    'Retira a Formatação
    xCPF = ""
    nVezes = Len(CPF)
    For nPos = 1 To nVezes
        xTexto = Mid(CPF, nPos, 1)
        If Asc(xTexto) >= Asc("0") And Asc(xTexto) <= Asc("9") Then
            xCPF = xCPF + xTexto
        End If
    Next
    ' Calculo para o primeiro digito
    'Extrair os numeros de 1 a 12 e multiplica-los por 10,9,8,7,6,5,4,3,2
    nX1 = Val(Mid(xCPF, 1, 1)) * (10)
    nX2 = Val(Mid(xCPF, 2, 1)) * (9)
    nX3 = Val(Mid(xCPF, 3, 1)) * (8)
    nX4 = Val(Mid(xCPF, 4, 1)) * (7)
    nX5 = Val(Mid(xCPF, 5, 1)) * (6)
    nX6 = Val(Mid(xCPF, 6, 1)) * (5)
    nX7 = Val(Mid(xCPF, 7, 1)) * (4)
    nX8 = Val(Mid(xCPF, 8, 1)) * (3)
    nX9 = Val(Mid(xCPF, 9, 1)) * (2)
    'Soma o Resultado
    nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9))
    'Divide-se o resultado por 11 e pega-se a parte inteira
    nInt = (Int((nTX) / (11)))
    'Acha-se o resto
    nResto = ((nTX) - ((nInt) * (11)))
    'Acha-se o Digito
    xDigito = Val(Mid(xCPF, 10, 1))
    yDigito = ((11) - (nResto))
    If yDigito >= 10 Then yDigito = 0
    ' Calculo para o segundo digito
    If xDigito = yDigito Then
        'Extrair os numeros de 1 a 11 e multiplica-los por 11,10,9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xCPF, 1, 1)) * (11)
        nX2 = Val(Mid(xCPF, 2, 1)) * (10)
        nX3 = Val(Mid(xCPF, 3, 1)) * (9)
        nX4 = Val(Mid(xCPF, 4, 1)) * (8)
        nX5 = Val(Mid(xCPF, 5, 1)) * (7)
        nX6 = Val(Mid(xCPF, 6, 1)) * (6)
        nX7 = Val(Mid(xCPF, 7, 1)) * (5)
        nX8 = Val(Mid(xCPF, 8, 1)) * (4)
        nX9 = Val(Mid(xCPF, 9, 1)) * (3)
        nX10 = Val(Mid(xCPF, 10, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xCPF, 11, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    'Retorno da funcao
    If xDigito = yDigito Then
        ChekCPF = True
    Else
        ChekCPF = False
    End If
End Function
Public Function ChekCNPJ(CNPJ As String)
    On Error Resume Next
    'Retira a Formatação
    xCNPJ = ""
    nVezes = Len(CNPJ)
    For nPos = 1 To nVezes
        xTexto = Mid(CNPJ, nPos, 1)
        If Asc(xTexto) >= Asc("0") And Asc(xTexto) <= Asc("9") Then
            xCNPJ = xCNPJ + xTexto
        End If
    Next
    ' Calculo para o primeiro digito
    'Extrair os numeros de 1 a 12 e multiplica-los por 5,4,3,2,9,8,7,6,5,4,3,2
    nX1 = Val(Mid(xCNPJ, 1, 1)) * (5)
    nX2 = Val(Mid(xCNPJ, 2, 1)) * (4)
    nX3 = Val(Mid(xCNPJ, 3, 1)) * (3)
    nX4 = Val(Mid(xCNPJ, 4, 1)) * (2)
    nX5 = Val(Mid(xCNPJ, 5, 1)) * (9)
    nX6 = Val(Mid(xCNPJ, 6, 1)) * (8)
    nX7 = Val(Mid(xCNPJ, 7, 1)) * (7)
    nX8 = Val(Mid(xCNPJ, 8, 1)) * (6)
    nX9 = Val(Mid(xCNPJ, 9, 1)) * (5)
    nX10 = Val(Mid(xCNPJ, 10, 1)) * (4)
    nX11 = Val(Mid(xCNPJ, 11, 1)) * (3)
    nX12 = Val(Mid(xCNPJ, 12, 1)) * (2)
    'Soma o Resultado
    nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12))
    'Divide-se o resultado por 11 e pega-se a parte inteira
    nInt = (Int((nTX) / (11)))
    'Acha-se o resto
    nResto = ((nTX) - ((nInt) * (11)))
    'Acha-se o Digito
    xDigito = Val(Mid(xCNPJ, 13, 1))
    yDigito = ((11) - (nResto))
    If yDigito >= 10 Then yDigito = 0
    ' Calculo para o segundo digito
    If xDigito = yDigito Then
        'Extrair os numeros de 1 a 11 e multiplica-los por 6,5,4,3,2,9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xCNPJ, 1, 1)) * (6)
        nX2 = Val(Mid(xCNPJ, 2, 1)) * (5)
        nX3 = Val(Mid(xCNPJ, 3, 1)) * (4)
        nX4 = Val(Mid(xCNPJ, 4, 1)) * (3)
        nX5 = Val(Mid(xCNPJ, 5, 1)) * (2)
        nX6 = Val(Mid(xCNPJ, 6, 1)) * (9)
        nX7 = Val(Mid(xCNPJ, 7, 1)) * (8)
        nX8 = Val(Mid(xCNPJ, 8, 1)) * (7)
        nX9 = Val(Mid(xCNPJ, 9, 1)) * (6)
        nX10 = Val(Mid(xCNPJ, 10, 1)) * (5)
        nX11 = Val(Mid(xCNPJ, 11, 1)) * (4)
        nX12 = Val(Mid(xCNPJ, 12, 1)) * (3)
        nX13 = Val(Mid(xCNPJ, 13, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12) + (nX13))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xCNPJ, 14, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    'Retorno da funcao
    If xDigito = yDigito Then
        ChekCNPJ = True
    Else
        ChekCNPJ = False
    End If
End Function
Public Function ChekIE(IE As String, UF As String)
    On Error Resume Next
    'Retira a Formatação
    xIE = ""
    nVezes = Len(IE)
    For nPos = 1 To nVezes
        xTexto = Mid(IE, nPos, 1)
        If Asc(xTexto) >= Asc("0") And Asc(xTexto) <= Asc("9") Then
            xIE = xIE + xTexto
        End If
    Next
    If UF = "AC" Then 'ACRE
        ' Calculo para o primeiro digito
        'Extrair os numeros de 1 a 11 e multiplica-los por 4,3,2,9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (4)
        nX2 = Val(Mid(xIE, 2, 1)) * (3)
        nX3 = Val(Mid(xIE, 3, 1)) * (2)
        nX4 = Val(Mid(xIE, 4, 1)) * (9)
        nX5 = Val(Mid(xIE, 5, 1)) * (8)
        nX6 = Val(Mid(xIE, 6, 1)) * (7)
        nX7 = Val(Mid(xIE, 7, 1)) * (6)
        nX8 = Val(Mid(xIE, 8, 1)) * (5)
        nX9 = Val(Mid(xIE, 9, 1)) * (4)
        nX10 = Val(Mid(xIE, 10, 1)) * (3)
        nX11 = Val(Mid(xIE, 11, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 12, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
        ' Calculo para o segundo digito
        If xDigito = yDigito Then
            'Extrair os numeros de 1 a 11 e multiplica-los por 5,4,3,2,9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (5)
            nX2 = Val(Mid(xIE, 2, 1)) * (4)
            nX3 = Val(Mid(xIE, 3, 1)) * (3)
            nX4 = Val(Mid(xIE, 4, 1)) * (2)
            nX5 = Val(Mid(xIE, 5, 1)) * (9)
            nX6 = Val(Mid(xIE, 6, 1)) * (8)
            nX7 = Val(Mid(xIE, 7, 1)) * (7)
            nX8 = Val(Mid(xIE, 8, 1)) * (6)
            nX9 = Val(Mid(xIE, 9, 1)) * (5)
            nX10 = Val(Mid(xIE, 10, 1)) * (4)
            nX11 = Val(Mid(xIE, 11, 1)) * (3)
            nX12 = Val(Mid(xIE, 12, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 13, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "AL" Then 'ALAGOAS
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        nTX = ((nTX) * (10))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = nResto
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "AP" Then 'AMAPA
        If Mid(xIE, 1, 2) = "03" Then
            'Define-se dois valores, p e d, de acordo com as seguintes faixas de Inscrição Estadual:
            If Val(Mid(xIE, 1, 8)) >= 3000001 And Val(Mid(xIE, 1, 8)) <= 3017000 Then
                P = 5
                D = 0
            End If
            If Val(Mid(xIE, 1, 8)) >= 3017001 And Val(Mid(xIE, 1, 8)) <= 3019022 Then
                P = 9
                D = 1
            End If
            If Val(Mid(xIE, 1, 8)) >= 3019023 Then
                P = 0
                D = 0
            End If
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (9)
            nX2 = Val(Mid(xIE, 2, 1)) * (8)
            nX3 = Val(Mid(xIE, 3, 1)) * (7)
            nX4 = Val(Mid(xIE, 4, 1)) * (6)
            nX5 = Val(Mid(xIE, 5, 1)) * (5)
            nX6 = Val(Mid(xIE, 6, 1)) * (4)
            nX7 = Val(Mid(xIE, 7, 1)) * (3)
            nX8 = Val(Mid(xIE, 8, 1)) * (2)
            'Soma o Resultado
            nTX = ((P) + (nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = ((11) - (nResto))
            If yDigito = 10 Then
                yDigito = 0
            ElseIf yDigito = 11 Then
                yDigito = D
            End If
        End If
    End If
    If UF = "AM" Then 'AMAZONAS
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        If nTX < 11 Then
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = ((11) - (nTX))
        Else
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "BA" Then 'BAHIA
        If (Val(Mid(xIE, 8, 1)) >= 0 And Val(Mid(xIE, 8, 1)) <= 5) Or (Val(Mid(xIE, 8, 1)) = 8) Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (7)
            nX2 = Val(Mid(xIE, 2, 1)) * (6)
            nX3 = Val(Mid(xIE, 3, 1)) * (5)
            nX4 = Val(Mid(xIE, 4, 1)) * (4)
            nX5 = Val(Mid(xIE, 5, 1)) * (3)
            nX6 = Val(Mid(xIE, 6, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (10)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (10)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 8, 1))
            yDigito = ""
            If nResto = 0 Then
                yDigito = 0
            Else
                yDigito = ((10) - (nResto))
            End If
            If xDigito = yDigito Then
                'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
                nX1 = Val(Mid(xIE, 1, 1)) * (8)
                nX2 = Val(Mid(xIE, 2, 1)) * (7)
                nX3 = Val(Mid(xIE, 3, 1)) * (6)
                nX4 = Val(Mid(xIE, 4, 1)) * (5)
                nX5 = Val(Mid(xIE, 5, 1)) * (4)
                nX6 = Val(Mid(xIE, 6, 1)) * (3)
                nX7 = (yDigito) * (2)
                'Soma o Resultado
                nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7))
                'Divide-se o resultado por 11 e pega-se a parte inteira
                nInt = (Int((nTX) / (10)))
                'Acha-se o resto
                nResto = ((nTX) - ((nInt) * (10)))
                'Acha-se o Digito
                xDigito = Val(Mid(xIE, 7, 1))
                yDigito = ((10) - (nResto))
            End If
        Else
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (7)
            nX2 = Val(Mid(xIE, 2, 1)) * (6)
            nX3 = Val(Mid(xIE, 3, 1)) * (5)
            nX4 = Val(Mid(xIE, 4, 1)) * (4)
            nX5 = Val(Mid(xIE, 5, 1)) * (3)
            nX6 = Val(Mid(xIE, 6, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 8, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
            If xDigito = yDigito Then
                'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
                nX1 = Val(Mid(xIE, 1, 1)) * (8)
                nX2 = Val(Mid(xIE, 2, 1)) * (7)
                nX3 = Val(Mid(xIE, 3, 1)) * (6)
                nX4 = Val(Mid(xIE, 4, 1)) * (5)
                nX5 = Val(Mid(xIE, 5, 1)) * (4)
                nX6 = Val(Mid(xIE, 6, 1)) * (3)
                nX7 = (yDigito) * (2)
                'Soma o Resultado
                nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7))
                'Divide-se o resultado por 11 e pega-se a parte inteira
                nInt = (Int((nTX) / (11)))
                'Acha-se o resto
                nResto = ((nTX) - ((nInt) * (11)))
                'Acha-se o Digito
                xDigito = Val(Mid(xIE, 7, 1))
                yDigito = ((11) - (nResto))
            End If
        End If
    End If
    If UF = "CE" Then 'CEARA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "DF" Then 'DISTRITO FEDERAL
        ' Calculo para o primeiro digito
        'Extrair os numeros de 1 a 11 e multiplica-los por 4,3,2,9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (4)
        nX2 = Val(Mid(xIE, 2, 1)) * (3)
        nX3 = Val(Mid(xIE, 3, 1)) * (2)
        nX4 = Val(Mid(xIE, 4, 1)) * (9)
        nX5 = Val(Mid(xIE, 5, 1)) * (8)
        nX6 = Val(Mid(xIE, 6, 1)) * (7)
        nX7 = Val(Mid(xIE, 7, 1)) * (6)
        nX8 = Val(Mid(xIE, 8, 1)) * (5)
        nX9 = Val(Mid(xIE, 9, 1)) * (4)
        nX10 = Val(Mid(xIE, 10, 1)) * (3)
        nX11 = Val(Mid(xIE, 11, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 12, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
        ' Calculo para o segundo digito
        If xDigito = yDigito Then
            'Extrair os numeros de 1 a 11 e multiplica-los por 5,4,3,2,9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (5)
            nX2 = Val(Mid(xIE, 2, 1)) * (4)
            nX3 = Val(Mid(xIE, 3, 1)) * (3)
            nX4 = Val(Mid(xIE, 4, 1)) * (2)
            nX5 = Val(Mid(xIE, 5, 1)) * (9)
            nX6 = Val(Mid(xIE, 6, 1)) * (8)
            nX7 = Val(Mid(xIE, 7, 1)) * (7)
            nX8 = Val(Mid(xIE, 8, 1)) * (6)
            nX9 = Val(Mid(xIE, 9, 1)) * (5)
            nX10 = Val(Mid(xIE, 10, 1)) * (4)
            nX11 = Val(Mid(xIE, 11, 1)) * (3)
            nX12 = Val(Mid(xIE, 12, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 13, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "ES" Then 'ESPIRITO SANTO
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "GO" Then 'GOAIS
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ""
        If Val(Mid(xIE, 1, 8)) = 11094402 Then
            If nResto <= 1 Then
                yDigito = xDigito
            End If
        End If
        If (nResto = 1) And (Val(Mid(xIE, 1, 8)) >= 10103105 And Val(Mid(xIE, 1, 8)) <= 10119997) Then
            If nResto = 1 Then
                yDigito = xDigito
            End If
        Else
            If nResto = 0 Then
                yDigito = xDigito
            End If
        End If
        If nResto > 1 Then
            yDigito = ((11) - (nResto))
        End If
    End If
    If UF = "MA" Then 'MARANHAO
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "muito" Then 'MATO GROSSO
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (3)
        nX2 = Val(Mid(xIE, 2, 1)) * (2)
        nX3 = Val(Mid(xIE, 3, 1)) * (9)
        nX4 = Val(Mid(xIE, 4, 1)) * (8)
        nX5 = Val(Mid(xIE, 5, 1)) * (7)
        nX6 = Val(Mid(xIE, 6, 1)) * (6)
        nX7 = Val(Mid(xIE, 7, 1)) * (5)
        nX8 = Val(Mid(xIE, 8, 1)) * (4)
        nX9 = Val(Mid(xIE, 9, 1)) * (3)
        nX10 = Val(Mid(xIE, 10, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 11, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "MS" Then 'MATO GROSSO DO SUL
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "MG" Then 'MINAS GERAIS
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (1)
        nX2 = Val(Mid(xIE, 2, 1)) * (2)
        nX3 = Val(Mid(xIE, 3, 1)) * (1)
        nX4 = 0
        nX5 = Val(Mid(xIE, 4, 1)) * (1)
        nX6 = Val(Mid(xIE, 5, 1)) * (2)
        nX7 = Val(Mid(xIE, 6, 1)) * (1)
        nX8 = Val(Mid(xIE, 7, 1)) * (2)
        nX9 = Val(Mid(xIE, 8, 1)) * (1)
        nX10 = Val(Mid(xIE, 9, 1)) * (2)
        nX11 = Val(Mid(xIE, 10, 1)) * (1)
        nX12 = Val(Mid(xIE, 11, 1)) * (2)
        'Soma-se os algarismos (não os produtos) do resultado obtido
        nTX = ((nX1) & (nX2) & (nX3) & (nX4) & (nX5) & (nX6) & (nX7) & (nX8) & (nX9) & (nX10) & (nX11) & (nX12))
        xnTX = 0
        nVezes = Len(nTX)
        For nPos = 1 To nVezes
            xnTX = xnTX + Val(Mid(nTX, nPos, 1))
        Next
        nTX = xnTX
        'Subtrai-se o resultado da soma do item anterior, da primeira dezena exata imediatamente superior:
        nyTX = nTX
        nxTX = 0
        For nPos = 1 To 15
            nyTX = nyTX + 1
            nInt = (Int((nyTX) / (10)))
            If (((nyTX) - ((nInt) * (10))) = 0) And (nxTX = 0) Then
                nxTX = nyTX
            End If
        Next
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 12, 1))
        yDigito = (nxTX - nTX)
        If yDigito = 10 Then yDigito = 0
        If xDigito = yDigito Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (3)
            nX2 = Val(Mid(xIE, 2, 1)) * (2)
            nX3 = Val(Mid(xIE, 3, 1)) * (11)
            nX4 = Val(Mid(xIE, 4, 1)) * (10)
            nX5 = Val(Mid(xIE, 5, 1)) * (9)
            nX6 = Val(Mid(xIE, 6, 1)) * (8)
            nX7 = Val(Mid(xIE, 7, 1)) * (7)
            nX8 = Val(Mid(xIE, 8, 1)) * (6)
            nX9 = Val(Mid(xIE, 9, 1)) * (5)
            nX10 = Val(Mid(xIE, 10, 1)) * (4)
            nX11 = Val(Mid(xIE, 11, 1)) * (3)
            nX12 = Val(Mid(xIE, 12, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 13, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "PA" Then 'PARA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "PB" Then 'PARAIBA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "PR" Then 'PARANA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (3)
        nX2 = Val(Mid(xIE, 2, 1)) * (2)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
        If xDigito = yDigito Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (4)
            nX2 = Val(Mid(xIE, 2, 1)) * (3)
            nX3 = Val(Mid(xIE, 3, 1)) * (2)
            nX4 = Val(Mid(xIE, 4, 1)) * (7)
            nX5 = Val(Mid(xIE, 5, 1)) * (6)
            nX6 = Val(Mid(xIE, 6, 1)) * (5)
            nX7 = Val(Mid(xIE, 7, 1)) * (4)
            nX8 = Val(Mid(xIE, 8, 1)) * (3)
            nX9 = Val(Mid(xIE, 9, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 10, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "PE" Then 'PERNANBUCO
        If Len(xIE) >= 13 Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (5)
            nX2 = Val(Mid(xIE, 2, 1)) * (4)
            nX3 = Val(Mid(xIE, 3, 1)) * (3)
            nX4 = Val(Mid(xIE, 4, 1)) * (2)
            nX5 = Val(Mid(xIE, 5, 1)) * (1)
            nX6 = Val(Mid(xIE, 6, 1)) * (9)
            nX7 = Val(Mid(xIE, 7, 1)) * (8)
            nX8 = Val(Mid(xIE, 8, 1)) * (7)
            nX9 = Val(Mid(xIE, 9, 1)) * (6)
            nX10 = Val(Mid(xIE, 10, 1)) * (5)
            nX11 = Val(Mid(xIE, 11, 1)) * (4)
            nX12 = Val(Mid(xIE, 12, 1)) * (3)
            nX13 = Val(Mid(xIE, 13, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11) + (nX12) + (nX13))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 14, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        Else
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (8)
            nX2 = Val(Mid(xIE, 2, 1)) * (7)
            nX3 = Val(Mid(xIE, 3, 1)) * (6)
            nX4 = Val(Mid(xIE, 4, 1)) * (5)
            nX5 = Val(Mid(xIE, 5, 1)) * (4)
            nX6 = Val(Mid(xIE, 6, 1)) * (3)
            nX7 = Val(Mid(xIE, 7, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 8, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
            If xDigito = yDigito Then
                'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
                nX1 = Val(Mid(xIE, 1, 1)) * (9)
                nX2 = Val(Mid(xIE, 2, 1)) * (8)
                nX3 = Val(Mid(xIE, 3, 1)) * (7)
                nX4 = Val(Mid(xIE, 4, 1)) * (6)
                nX5 = Val(Mid(xIE, 5, 1)) * (5)
                nX6 = Val(Mid(xIE, 6, 1)) * (4)
                nX7 = Val(Mid(xIE, 7, 1)) * (3)
                nX8 = Val(Mid(xIE, 8, 1)) * (2)
                'Soma o Resultado
                nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
                'Divide-se o resultado por 11 e pega-se a parte inteira
                nInt = (Int((nTX) / (11)))
                'Acha-se o resto
                nResto = ((nTX) - ((nInt) * (11)))
                'Acha-se o Digito
                xDigito = Val(Mid(xIE, 9, 1))
                yDigito = ((11) - (nResto))
                If yDigito >= 10 Then yDigito = 0
            End If
        End If
    End If
    If UF = "PI" Then 'PIAUI
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "RJ" Then 'RIO DE JANEIRO
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (2)
        nX2 = Val(Mid(xIE, 2, 1)) * (7)
        nX3 = Val(Mid(xIE, 3, 1)) * (6)
        nX4 = Val(Mid(xIE, 4, 1)) * (5)
        nX5 = Val(Mid(xIE, 5, 1)) * (4)
        nX6 = Val(Mid(xIE, 6, 1)) * (3)
        nX7 = Val(Mid(xIE, 7, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 8, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "RN" Then 'RIO GRANDE DO NORTE
        If Len(xIE) = 10 Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (10)
            nX2 = Val(Mid(xIE, 2, 1)) * (9)
            nX3 = Val(Mid(xIE, 3, 1)) * (8)
            nX4 = Val(Mid(xIE, 4, 1)) * (7)
            nX5 = Val(Mid(xIE, 5, 1)) * (6)
            nX6 = Val(Mid(xIE, 6, 1)) * (5)
            nX7 = Val(Mid(xIE, 7, 1)) * (4)
            nX8 = Val(Mid(xIE, 8, 1)) * (3)
            nX9 = Val(Mid(xIE, 9, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 10, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        Else
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (9)
            nX2 = Val(Mid(xIE, 2, 1)) * (8)
            nX3 = Val(Mid(xIE, 3, 1)) * (7)
            nX4 = Val(Mid(xIE, 4, 1)) * (6)
            nX5 = Val(Mid(xIE, 5, 1)) * (5)
            nX6 = Val(Mid(xIE, 6, 1)) * (4)
            nX7 = Val(Mid(xIE, 7, 1)) * (3)
            nX8 = Val(Mid(xIE, 8, 1)) * (2)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = ((11) - (nResto))
            If yDigito >= 10 Then yDigito = 0
        End If
    End If
    If UF = "RS" Then 'RIO GRANDE DO SUL
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (2)
        nX2 = Val(Mid(xIE, 2, 1)) * (9)
        nX3 = Val(Mid(xIE, 3, 1)) * (8)
        nX4 = Val(Mid(xIE, 4, 1)) * (7)
        nX5 = Val(Mid(xIE, 5, 1)) * (6)
        nX6 = Val(Mid(xIE, 6, 1)) * (5)
        nX7 = Val(Mid(xIE, 7, 1)) * (4)
        nX8 = Val(Mid(xIE, 8, 1)) * (3)
        nX9 = Val(Mid(xIE, 9, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 10, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "RO" Then 'RONDONIA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        If Len(xIE) > 6 Then xIE = (Mid(xIE, (nVezes - 7), 6))
        nX1 = Val(Mid(xIE, 1, 1)) * (6)
        nX2 = Val(Mid(xIE, 2, 1)) * (5)
        nX3 = Val(Mid(xIE, 3, 1)) * (4)
        nX4 = Val(Mid(xIE, 4, 1)) * (3)
        nX5 = Val(Mid(xIE, 5, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 6, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "RR" Then 'RORAIMA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (1)
        nX2 = Val(Mid(xIE, 2, 1)) * (2)
        nX3 = Val(Mid(xIE, 3, 1)) * (3)
        nX4 = Val(Mid(xIE, 4, 1)) * (4)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (6)
        nX7 = Val(Mid(xIE, 7, 1)) * (7)
        nX8 = Val(Mid(xIE, 8, 1)) * (8)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (9)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (9)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = (nResto)
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "SC" Then 'SANTA CATARINA
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "SP" Then 'são PAULO
        If Mid(IE, 1, 1) = "P" Then
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (1)
            nX2 = Val(Mid(xIE, 2, 1)) * (3)
            nX3 = Val(Mid(xIE, 3, 1)) * (4)
            nX4 = Val(Mid(xIE, 4, 1)) * (5)
            nX5 = Val(Mid(xIE, 5, 1)) * (6)
            nX6 = Val(Mid(xIE, 6, 1)) * (7)
            nX7 = Val(Mid(xIE, 7, 1)) * (8)
            nX8 = Val(Mid(xIE, 8, 1)) * (10)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = (nResto)
            If yDigito >= 10 Then yDigito = 0
        Else
            'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
            nX1 = Val(Mid(xIE, 1, 1)) * (1)
            nX2 = Val(Mid(xIE, 2, 1)) * (3)
            nX3 = Val(Mid(xIE, 3, 1)) * (4)
            nX4 = Val(Mid(xIE, 4, 1)) * (5)
            nX5 = Val(Mid(xIE, 5, 1)) * (6)
            nX6 = Val(Mid(xIE, 6, 1)) * (7)
            nX7 = Val(Mid(xIE, 7, 1)) * (8)
            nX8 = Val(Mid(xIE, 8, 1)) * (10)
            'Soma o Resultado
            nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
            'Divide-se o resultado por 11 e pega-se a parte inteira
            nInt = (Int((nTX) / (11)))
            'Acha-se o resto
            nResto = ((nTX) - ((nInt) * (11)))
            'Acha-se o Digito
            xDigito = Val(Mid(xIE, 9, 1))
            yDigito = (nResto)
            If yDigito >= 10 Then yDigito = 0
            If xDigito = yDigito Then
                'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
                nX1 = Val(Mid(xIE, 1, 1)) * (3)
                nX2 = Val(Mid(xIE, 2, 1)) * (2)
                nX3 = Val(Mid(xIE, 3, 1)) * (10)
                nX4 = Val(Mid(xIE, 4, 1)) * (9)
                nX5 = Val(Mid(xIE, 5, 1)) * (8)
                nX6 = Val(Mid(xIE, 6, 1)) * (7)
                nX7 = Val(Mid(xIE, 7, 1)) * (6)
                nX8 = Val(Mid(xIE, 8, 1)) * (5)
                nX9 = Val(Mid(xIE, 9, 1)) * (4)
                nX10 = Val(Mid(xIE, 10, 1)) * (3)
                nX11 = Val(Mid(xIE, 11, 1)) * (2)
                'Soma o Resultado
                nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8) + (nX9) + (nX10) + (nX11))
                'Divide-se o resultado por 11 e pega-se a parte inteira
                nInt = (Int((nTX) / (11)))
                'Acha-se o resto
                nResto = ((nTX) - ((nInt) * (11)))
                'Acha-se o Digito
                xDigito = Val(Mid(xIE, 12, 1))
                yDigito = (nResto)
                If yDigito >= 10 Then yDigito = 0
            End If
        End If
    End If
    If UF = "SE" Then 'SERGIPE
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 3, 1)) * (7)
        nX4 = Val(Mid(xIE, 4, 1)) * (6)
        nX5 = Val(Mid(xIE, 5, 1)) * (5)
        nX6 = Val(Mid(xIE, 6, 1)) * (4)
        nX7 = Val(Mid(xIE, 7, 1)) * (3)
        nX8 = Val(Mid(xIE, 8, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 9, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    If UF = "TO" Then 'TOCANTINS
        'Extrair os numeros de 1 a 8 e multiplica-los por 9,8,7,6,5,4,3,2
        nX1 = Val(Mid(xIE, 1, 1)) * (9)
        nX2 = Val(Mid(xIE, 2, 1)) * (8)
        nX3 = Val(Mid(xIE, 5, 1)) * (7)
        nX4 = Val(Mid(xIE, 6, 1)) * (6)
        nX5 = Val(Mid(xIE, 7, 1)) * (5)
        nX6 = Val(Mid(xIE, 8, 1)) * (4)
        nX7 = Val(Mid(xIE, 9, 1)) * (3)
        nX8 = Val(Mid(xIE, 10, 1)) * (2)
        'Soma o Resultado
        nTX = ((nX1) + (nX2) + (nX3) + (nX4) + (nX5) + (nX6) + (nX7) + (nX8))
        'Divide-se o resultado por 11 e pega-se a parte inteira
        nInt = (Int((nTX) / (11)))
        'Acha-se o resto
        nResto = ((nTX) - ((nInt) * (11)))
        'Acha-se o Digito
        xDigito = Val(Mid(xIE, 11, 1))
        yDigito = ((11) - (nResto))
        If yDigito >= 10 Then yDigito = 0
    End If
    'Retorno da funcao
    If xDigito = yDigito Then
        ChekIE = True
    Else
        ChekIE = False
    End If
End Function

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...