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

Validação De Cnpj


Dc Spoc

Pergunta

Boa tarde galera,

Gostaria de saber se alguém tem um código em ASP para validar CNPJ. Já encontrei o do CPF aqui mesmo, e agora estou precisando de um para o CNPJ. Pesquisando na net encontrei este:


<%
Function Valida_Cnpj(Num_Cnpj As String) As Boolean
      Dim dig1, dig2 As Integer 
      ' Variáveis que irão receber os dígitos calculados
      Dim p_dig1, p_dig2 As Integer 
      'Variaveis usadas somente p/ auxiliar no
      calculo do dígito
      Dim str_partes, dig_fim As String 
      ' Vão receber respectivamente os nove
      caracteres iniciais e os dois ultimos
      Dim parte1, parte2, parte3, parte4 As String 
      'Recebem os números do cpf sem os
      pontos
      Dim soma_dig1, soma_dig2, cont As Long 
      'Recebem o valor da soma e
      multiplicação dos números
      'Inicia a eliminação dos Pontos e traços do número
      parte1 = Mid(Num_Cnpj, 1, 2)
      parte2 = Mid(Num_Cnpj, 4, 3)
      parte3 = Mid(Num_Cnpj, 8, 3)
      parte4= Mid(Num_Cnpj, 12, 4) 
      str_partes = parte1 + parte2 + parte3 + parte4
      dig_fim = Right(Num_Cnpj, 2)
      soma_dig1 = 0
      soma_dig2 = 0
      For cont = 1 To Len(str_partes)
            soma_dig1 = soma_dig1 + Val(Mid(str_partes, cont, 1)) _
            * IIf(cont < 5, 6 - cont, 14 - cont)
            soma_dig2 = soma_dig2 + Val(Mid(str_partes, cont, 1)) _
            * IIf(cont < 6, 7 - cont, 15 - cont)
      Next cont
      p_dig1 = soma_dig1 Mod 11
      dig1 = IIf(p_dig1 = 0 Or p_dig1 = 1, 0, 11 - p_dig1)
      p_dig2 = soma_dig2 + dig1 * 2
      p_dig2 = p_dig2 Mod 11
      dig2 = IIf(p_dig2 = 0 Or p_dig2 = 1, 0, 11 - p_dig2)
      If dig_fim <> dig1 & dig2 Then
            Valida_Cnpj= False 'Retorna false se o número não for válido
      Else
            Valida_Cnpj= True 'Retorna true se o número for váldo
      End If
End Function
%>

Só que tá dando erro.

Alguém pode me ajudar?

Antecipadamente agradeço.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Usa esse aqui da roccofroes.com

'-----------------------------------------------------

'Funcao: IsCNPJ(ByVal intNumero)

'Sinopse: Verifica se o valor passado é um CNPJ válido

'          Formatos aceitos: XX.XXX.XXX/XXXX-XX ou

'                            XXXXXXXXXXXXXX

'Parametro: intNumero

'Retorno: Booleano

'-----------------------------------------------------

'-----------------------------------------------------

Function IsCNPJ(ByVal intNumero)

    'Validando o formato do CNPJ com expressão regular

    Set regEx = New RegExp                                'Cria o Objeto Expressão

    regEx.Pattern = "\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2}"    ' Expressão Regular

    regEx.IgnoreCase = True                                ' Sensitivo ou não

    regEx.Global = True                                    ' Não sei exatamente o que faz

    Retorno = RegEx.Test(intNumero)

    Set regEx = Nothing

   

    'Caso seja verdadeiro posso validar se o CPF é válido

    If Retorno = True Then

        'Validando a sequencia números

        Dim CNPJ_temp

        CNPJ_temp            = intNumero

        CNPJ_temp            = Replace(CNPJ_temp, ".", "")

        CNPJ_temp            = Replace(CNPJ_temp, "/", "")

        CNPJ_temp            = Replace(CNPJ_temp, "-", "")

        CNPJ_Digito_temp    = Right(CNPJ_temp, 2)

       

        'Somando os 12 primeiros digitos do CNPJ

        Soma    = (Clng(Mid(CNPJ_temp,1,1)) * 5) + (Clng(Mid(CNPJ_temp,2,1)) * 4) + (Clng(Mid(CNPJ_temp,3,1)) * 3) + (Clng(Mid(CNPJ_temp,4,1)) * 2) + (Clng(Mid(CNPJ_temp,5,1)) * 9) + (Clng(Mid(CNPJ_temp,6,1)) * 8)+ (Clng(Mid(CNPJ_temp,7,1)) * 7) + (Clng(Mid(CNPJ_temp,8,1)) * 6) + (Clng(Mid(CNPJ_temp,9,1)) * 5) + (Clng(Mid(CNPJ_temp,10,1)) * 4) + (Clng(Mid(CNPJ_temp,11,1)) * 3) + (Clng(Mid(CNPJ_temp,12,1)) * 2)

        '----------------------------------

        'Calculando o 1º dígito verificador

        '----------------------------------

        'Pegando o resto da divisão por 11

        Resto    = (Soma Mod 11)

        If Resto = 10 Then

            DigitoHum = 0

        Else

            DigitoHum = Cstr(11-Resto)

        End If

        '----------------------------------

        '----------------------------------

        'Calculando o 2º dígito verificador

        '----------------------------------

        'Somando os 12 primeiros digitos do CNPJ mais o 1º dígito

        Soma    = (Clng(Mid(CNPJ_temp,1,1)) * 6) + (Clng(Mid(CNPJ_temp,2,1)) * 5) + (Clng(Mid(CNPJ_temp,3,1)) * 4) + (Clng(Mid(CNPJ_temp,4,1)) * 3) + (Clng(Mid(CNPJ_temp,5,1)) * 2) + (Clng(Mid(CNPJ_temp,6,1)) * 9) + (Clng(Mid(CNPJ_temp,7,1)) * 8) + (Clng(Mid(CNPJ_temp,8,1)) * 7) + (Clng(Mid(CNPJ_temp,9,1)) * 6) + (Clng(Mid(CNPJ_temp,10,1)) * 5) + (Clng(Mid(CNPJ_temp,11,1)) * 4) + (Clng(Mid(CNPJ_temp,12,1)) * 3) + (DigitoHum * 2)

        'Pegando o resto da divisão por 11

        Resto    = (Soma Mod 11)

       

        If Resto = 10 Then

            DigitoDois = 0

        Else

            DigitoDois = Cstr(11-Resto)

        End If

        '----------------------------------

        'Verificando se os digitos são iguais aos digítados.

        DigitoCNPJ = Cstr(DigitoHum) & Cstr(DigitoDois)

        If Cstr(CNPJ_Digito_temp) = Cstr(DigitoCNPJ) Then

            Retorno = True

        Else

            Retorno = False

        End If

    End If

    IsCNPJ = Retorno

End Function

Link para o comentário
Compartilhar em outros sites

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...