none
Validação CPF/CNPJ RRS feed

  • Pergunta

  • Estou tentando fazer um programa para Validação de CPF e CNPJ, onde tenho uma combobox que ao clicar libera em uma masktextbox para CPF ou CNPJ conforme selecionado na combox e libera o botao perquisar. ao clicar no botao pesquisar, retorna a mensagem se o CPF/CNPJ é valido ou nao.

    Consegui fazer com o CPF, mais não consigo com o CNPJ, alguem pode mim ajudar ?

    Meu Codigo no botao Pesquisar :

    Private Sub Btnpesquisar_Click(sender As Object, e As EventArgs) Handles Btnpesquisar.Click
            Dim blnResultado As Boolean
            Dim strCPF As String
            Dim Numero(13) As Integer
            Dim soma As Integer

    'Limpa a mascara.    

    strCPF = maskcpf.Text
            strCPF = Replace(strCPF, ".", "")
            strCPF = Replace(strCPF, "/", "")
            strCPF = Replace(strCPF, "-", "")

    'Verifica se numerico e valores invalidos

           If Not IsNumeric(strCPF) Or Len(strCPF) <> 11 Or strCPF = "00000000000" Or strCPF = "11111111111" Or strCPF = "22222222222" Or strCPF = "333333333333" Or
                strCPF = "44444444444" Or strCPF = "55555555555" Or strCPF = "66666666666" Or strCPF = "77777777777" Or strCPF = "88888888888" Or strCPF = "99999999999" Then
                blnResultado = False
            Else

                Dim Conta As Integer, Resto As Integer, Passo As Integer

                strCPF = Trim(strCPF)

                For Passo = 11 To 12
                    soma = 0
                    For Conta = 1 To Passo - 2
                        soma = soma + Val(Mid(strCPF, Conta, 1)) * (Passo - Conta)
                    Next

                    Resto = 11 - (soma - (Int(soma / 11) * 11))

                    If Resto = 10 Or Resto = 11 Then Resto = 0

                    If Resto <> Val(Mid(strCPF, Passo - 1, 1)) Then
                        blnResultado = False
                    Else
                        blnResultado = True
                    End If
                Next
            End If
            If blnResultado = True Then
                MessageBox.Show("Válido")


            Else
                MessageBox.Show("Dados Invalidos")
            End If

         End Sub
    End Class

    Como faço para adicionar o CNPJ ?

    quinta-feira, 30 de outubro de 2014 01:09

Respostas

  • Gilmar Souza, segue uma sugestão para as 2 funções:

    Valida CPF

    Private Function ValidaCPF(ByVal CPF As String) As Boolean
    
            Dim i, x, n1, n2 As Integer
    
            CPF = CPF.Trim
            For i = 0 To dadosArray.Length - 1
                If CPF.Length <> 14 Or dadosArray(i).Equals(CPF) Then
                    Return False
                End If
            Next
            'remove a maskara
            CPF = CPF.Substring(0, 3) + CPF.Substring(4, 3) + CPF.Substring(8, 3) + CPF.Substring(12)
            For x = 0 To 1
                n1 = 0
                For i = 0 To 8 + x
                    n1 = n1 + Val(CPF.Substring(i, 1)) * (10 + x - i)
                Next
                n2 = 11 - (n1 - (Int(n1 / 11) * 11))
                If n2 = 10 Or n2 = 11 Then n2 = 0
    
                If n2 <> Val(CPF.Substring(9 + x, 1)) Then
                    Return False
                End If
            Next
    
            Return True
        End Function

    Valida CNPJ

    Private Function ValidaCNPJ(ByVal CNPJ As String) As Boolean
    
            Dim i As Integer
            Dim valida As Boolean
            CNPJ = CNPJ.Trim
    
            For i = 0 To dadosArray.Length - 1
                If CNPJ.Length <> 18 Or dadosArray(i).Equals(CNPJ) Then
                    Return False
                End If
            Next
    
            'remove a maskara
            CNPJ = CNPJ.Substring(0, 2) + CNPJ.Substring(3, 3) + CNPJ.Substring(7, 3) + CNPJ.Substring(11, 4) + CNPJ.Substring(16)
            valida = efetivaValidacao(CNPJ)
    
            If valida Then
                ValidaCNPJ = True
            Else
                ValidaCNPJ = False
            End If
    
        End Function
    
        Private Function efetivaValidacao(ByVal cnpj As String)
            Dim Numero(13) As Integer
            Dim soma As Integer
            Dim i As Integer
            Dim valida As Boolean
            Dim resultado1 As Integer
            Dim resultado2 As Integer
            For i = 0 To Numero.Length - 1
                Numero(i) = CInt(cnpj.Substring(i, 1))
            Next
            soma = Numero(0) * 5 + Numero(1) * 4 + Numero(2) * 3 + Numero(3) * 2 + Numero(4) * 9 + Numero(5) * 8 + Numero(6) * 7 + _
                       Numero(7) * 6 + Numero(8) * 5 + Numero(9) * 4 + Numero(10) * 3 + Numero(11) * 2
            soma = soma - (11 * (Int(soma / 11)))
            If soma = 0 Or soma = 1 Then
                resultado1 = 0
            Else
                resultado1 = 11 - soma
            End If
    
            If resultado1 = Numero(12) Then
              soma = Numero(0) * 6 + Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + _
                           Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2
                soma = soma - (11 * (Int(soma / 11)))
                If soma = 0 Or soma = 1 Then
                    resultado2 = 0
                Else
                    resultado2 = 11 - soma
                End If
                If resultado2 = Numero(13) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
    
        End Function
    

    Se adicionar as 2 funções na sua classe, basta chamar depois:

    Private Sub Btnpesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnpesquisar.Click
    
    'Para validar CPFs
    If ValidaCPF(maskcpf.Text) Then
        MsgBox("CPF válido")
    Else
        MsgBox("CPF Inválido")
    End If
    
    'Para validar CNPJs
    If ValidaCNPJ(maskcnpj.Text) Then
        MsgBox("CNPJ válido")
    Else
        MsgBox("CNPJ Inválido")
    End If
    
    
    
    End Sub


    Neste link tem o tutorial completo.

    Marque como resposta se foi útil.

    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 30 de outubro de 2014 11:10
    • Marcado como Resposta Gilmar Souza sexta-feira, 31 de outubro de 2014 10:48
    quinta-feira, 30 de outubro de 2014 02:00
  • Mais teria como jogar toda essa codificação direto no botão pesquisar sem usar funções programando tudo direto no Private Sub Btnpesquisar_Click ?

    obs.:  Deric Ferreira, desculpe te responder sem citação, minha conta ainda não foi verificada.

    Oi Gilmar Souza sim é possível, conforme o Mr. GMSOFT confirmou, mas se fizer isso seu código ficará bem mais difícil de manter no futuro, além de ficar muito menos legível. É uma boa prática separar as "responsabilidades" dos métodos (ou dos procedimentos que seu programa faz). Apenas por questão didática, veja que na própria pergunta você separa claramente que "conforme selecionado na combox e libera o botao perquisar. ao clicar no botao pesquisar, retorna a mensagem se o CPF/CNPJ é valido ou nao", quando você escreve seu código dividindo claramente as funções ele fica tão claro quanto a frase que acabei de citar. Entendeu a diferença? Abs.,

    Por favor, marque como resposta se foi útil. :)


    • Editado Deric Ferreira quinta-feira, 30 de outubro de 2014 12:14
    • Marcado como Resposta Gilmar Souza quinta-feira, 30 de outubro de 2014 14:48
    quinta-feira, 30 de outubro de 2014 12:13

Todas as Respostas

  • Gilmar Souza, segue uma sugestão para as 2 funções:

    Valida CPF

    Private Function ValidaCPF(ByVal CPF As String) As Boolean
    
            Dim i, x, n1, n2 As Integer
    
            CPF = CPF.Trim
            For i = 0 To dadosArray.Length - 1
                If CPF.Length <> 14 Or dadosArray(i).Equals(CPF) Then
                    Return False
                End If
            Next
            'remove a maskara
            CPF = CPF.Substring(0, 3) + CPF.Substring(4, 3) + CPF.Substring(8, 3) + CPF.Substring(12)
            For x = 0 To 1
                n1 = 0
                For i = 0 To 8 + x
                    n1 = n1 + Val(CPF.Substring(i, 1)) * (10 + x - i)
                Next
                n2 = 11 - (n1 - (Int(n1 / 11) * 11))
                If n2 = 10 Or n2 = 11 Then n2 = 0
    
                If n2 <> Val(CPF.Substring(9 + x, 1)) Then
                    Return False
                End If
            Next
    
            Return True
        End Function

    Valida CNPJ

    Private Function ValidaCNPJ(ByVal CNPJ As String) As Boolean
    
            Dim i As Integer
            Dim valida As Boolean
            CNPJ = CNPJ.Trim
    
            For i = 0 To dadosArray.Length - 1
                If CNPJ.Length <> 18 Or dadosArray(i).Equals(CNPJ) Then
                    Return False
                End If
            Next
    
            'remove a maskara
            CNPJ = CNPJ.Substring(0, 2) + CNPJ.Substring(3, 3) + CNPJ.Substring(7, 3) + CNPJ.Substring(11, 4) + CNPJ.Substring(16)
            valida = efetivaValidacao(CNPJ)
    
            If valida Then
                ValidaCNPJ = True
            Else
                ValidaCNPJ = False
            End If
    
        End Function
    
        Private Function efetivaValidacao(ByVal cnpj As String)
            Dim Numero(13) As Integer
            Dim soma As Integer
            Dim i As Integer
            Dim valida As Boolean
            Dim resultado1 As Integer
            Dim resultado2 As Integer
            For i = 0 To Numero.Length - 1
                Numero(i) = CInt(cnpj.Substring(i, 1))
            Next
            soma = Numero(0) * 5 + Numero(1) * 4 + Numero(2) * 3 + Numero(3) * 2 + Numero(4) * 9 + Numero(5) * 8 + Numero(6) * 7 + _
                       Numero(7) * 6 + Numero(8) * 5 + Numero(9) * 4 + Numero(10) * 3 + Numero(11) * 2
            soma = soma - (11 * (Int(soma / 11)))
            If soma = 0 Or soma = 1 Then
                resultado1 = 0
            Else
                resultado1 = 11 - soma
            End If
    
            If resultado1 = Numero(12) Then
              soma = Numero(0) * 6 + Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + _
                           Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2
                soma = soma - (11 * (Int(soma / 11)))
                If soma = 0 Or soma = 1 Then
                    resultado2 = 0
                Else
                    resultado2 = 11 - soma
                End If
                If resultado2 = Numero(13) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
    
        End Function
    

    Se adicionar as 2 funções na sua classe, basta chamar depois:

    Private Sub Btnpesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnpesquisar.Click
    
    'Para validar CPFs
    If ValidaCPF(maskcpf.Text) Then
        MsgBox("CPF válido")
    Else
        MsgBox("CPF Inválido")
    End If
    
    'Para validar CNPJs
    If ValidaCNPJ(maskcnpj.Text) Then
        MsgBox("CNPJ válido")
    Else
        MsgBox("CNPJ Inválido")
    End If
    
    
    
    End Sub


    Neste link tem o tutorial completo.

    Marque como resposta se foi útil.

    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 30 de outubro de 2014 11:10
    • Marcado como Resposta Gilmar Souza sexta-feira, 31 de outubro de 2014 10:48
    quinta-feira, 30 de outubro de 2014 02:00
  • Mais teria como jogar toda essa codificação direto no botão pesquisar sem usar funções programando tudo direto no Private Sub Btnpesquisar_Click ?

    obs.:  Deric Ferreira, desculpe te responder sem citação, minha conta ainda não foi verificada.

    quinta-feira, 30 de outubro de 2014 11:01
  • Basta pegar o conteudo da função e jogar dentro do botao, mais recomendo seguir como Deric Ferreira expôs para você
    quinta-feira, 30 de outubro de 2014 11:10
  • Mais teria como jogar toda essa codificação direto no botão pesquisar sem usar funções programando tudo direto no Private Sub Btnpesquisar_Click ?

    obs.:  Deric Ferreira, desculpe te responder sem citação, minha conta ainda não foi verificada.

    Oi Gilmar Souza sim é possível, conforme o Mr. GMSOFT confirmou, mas se fizer isso seu código ficará bem mais difícil de manter no futuro, além de ficar muito menos legível. É uma boa prática separar as "responsabilidades" dos métodos (ou dos procedimentos que seu programa faz). Apenas por questão didática, veja que na própria pergunta você separa claramente que "conforme selecionado na combox e libera o botao perquisar. ao clicar no botao pesquisar, retorna a mensagem se o CPF/CNPJ é valido ou nao", quando você escreve seu código dividindo claramente as funções ele fica tão claro quanto a frase que acabei de citar. Entendeu a diferença? Abs.,

    Por favor, marque como resposta se foi útil. :)


    • Editado Deric Ferreira quinta-feira, 30 de outubro de 2014 12:14
    • Marcado como Resposta Gilmar Souza quinta-feira, 30 de outubro de 2014 14:48
    quinta-feira, 30 de outubro de 2014 12:13
  • Mais teria como jogar toda essa codificação direto no botão pesquisar sem usar funções programando tudo direto no Private Sub Btnpesquisar_Click ?

    obs.:  Deric Ferreira, desculpe te responder sem citação, minha conta ainda não foi verificada.

    Oi Gilmar Souza sim é possível, conforme o Mr. GMSOFT confirmou, mas se fizer isso seu código ficará bem mais difícil de manter no futuro, além de ficar muito menos legível. É uma boa prática separar as "responsabilidades" dos métodos (ou dos procedimentos que seu programa faz). Apenas por questão didática, veja que na própria pergunta você separa claramente que "conforme selecionado na combox e libera o botao perquisar. ao clicar no botao pesquisar, retorna a mensagem se o CPF/CNPJ é valido ou nao", quando você escreve seu código dividindo claramente as funções ele fica tão claro quanto a frase que acabei de citar. Entendeu a diferença? Abs.,

    Por favor, marque como resposta se foi útil. :)

    Montei com função, mais dá erro ao chama-las no botão BtnPesquisar_Click, esse erro "'ValidaCPF' não está declarado. Pode ser inacessível devido ao seu nível de proteção.", como faço, para corrigir. segue codigo como está atualmente:

    Public Class Valida_CPF_CNPJ

        Dim dadosArray As Object

        Private Function ValidaCPF(ByVal CPF As String) As Boolean

            Dim i, x, n1, n2 As Integer

            CPF = CPF.Trim
            For i = 0 To dadosArray.Length - 1
                If CPF.Length <> 14 Or dadosArray(i).Equals(CPF) Then
                    Return False
                End If
            Next
            'remove a maskara
            CPF = CPF.Substring(0, 3) + CPF.Substring(4, 3) + CPF.Substring(8, 3) + CPF.Substring(12)
            For x = 0 To 1
                n1 = 0
                For i = 0 To 8 + x
                    n1 = n1 + Val(CPF.Substring(i, 1)) * (10 + x - i)
                Next
                n2 = 11 - (n1 - (Int(n1 / 11) * 11))
                If n2 = 10 Or n2 = 11 Then n2 = 0

                If n2 <> Val(CPF.Substring(9 + x, 1)) Then
                    Return False
                End If
            Next

            Return True
        End Function

        Private Function ValidaCNPJ(ByVal CNPJ As String) As Boolean

            Dim i As Integer
            Dim valida As Boolean
            CNPJ = CNPJ.Trim

            For i = 0 To dadosArray.Length - 1
                If CNPJ.Length <> 18 Or dadosArray(i).Equals(CNPJ) Then
                    Return False
                End If
            Next

            'remove a maskara
            CNPJ = CNPJ.Substring(0, 2) + CNPJ.Substring(3, 3) + CNPJ.Substring(7, 3) + CNPJ.Substring(11, 4) + CNPJ.Substring(16)
            valida = efetivaValidacao(CNPJ)

            If valida Then
                ValidaCNPJ = True
            Else
                ValidaCNPJ = False
            End If

        End Function

        Private Function efetivaValidacao(ByVal cnpj As String)
            Dim Numero(13) As Integer
            Dim soma As Integer
            Dim i As Integer
            Dim valida As Boolean
            Dim resultado1 As Integer
            Dim resultado2 As Integer
            For i = 0 To Numero.Length - 1
                Numero(i) = CInt(cnpj.Substring(i, 1))
            Next
            soma = Numero(0) * 5 + Numero(1) * 4 + Numero(2) * 3 + Numero(3) * 2 + Numero(4) * 9 + Numero(5) * 8 + Numero(6) * 7 + _
                       Numero(7) * 6 + Numero(8) * 5 + Numero(9) * 4 + Numero(10) * 3 + Numero(11) * 2
            soma = soma - (11 * (Int(soma / 11)))
            If soma = 0 Or soma = 1 Then
                resultado1 = 0
            Else
                resultado1 = 11 - soma
            End If

            If resultado1 = Numero(12) Then
                soma = Numero(0) * 6 + Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + _
                             Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2
                soma = soma - (11 * (Int(soma / 11)))
                If soma = 0 Or soma = 1 Then
                    resultado2 = 0
                Else
                    resultado2 = 11 - soma
                End If
                If resultado2 = Numero(13) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If

        End Function

    End Class

    chamando a função


        Private Sub btnPesquisa_Click(sender As Object, e As EventArgs) Handles btnPesquisa.Click
            'Para validar CPFs
            If ValidaCPF(mskCpfCnpj.Text) Then
                MsgBox("CPF válido")
            Else
                MsgBox("CPF Inválido")
            End If

            'Para validar CNPJs
            If ValidaCNPJ(mskCpfCnpj.Text) Then
                MsgBox("CNPJ válido")
            Else
                MsgBox("CNPJ Inválido")
            End If



        End Sub



    sexta-feira, 31 de outubro de 2014 01:30
  • Mais teria como jogar toda essa codificação direto no botão pesquisar sem usar funções programando tudo direto no Private Sub Btnpesquisar_Click ?

    obs.:  Deric Ferreira, desculpe te responder sem citação, minha conta ainda não foi verificada.

    Oi Gilmar Souza sim é possível, conforme o Mr. GMSOFT confirmou, mas se fizer isso seu código ficará bem mais difícil de manter no futuro, além de ficar muito menos legível. É uma boa prática separar as "responsabilidades" dos métodos (ou dos procedimentos que seu programa faz). Apenas por questão didática, veja que na própria pergunta você separa claramente que "conforme selecionado na combox e libera o botao perquisar. ao clicar no botao pesquisar, retorna a mensagem se o CPF/CNPJ é valido ou nao", quando você escreve seu código dividindo claramente as funções ele fica tão claro quanto a frase que acabei de citar. Entendeu a diferença? Abs.,

    Por favor, marque como resposta se foi útil. :)


     Como faço pra adicionar a validação do cnpj nesse código, sem o uso de função(regra imposta para aceitação do programa)? Sei que é boas praticas, mais houve essa imposição. 
    sexta-feira, 31 de outubro de 2014 23:33
  • Finalmente consegui fazer a validação sem o uso de função, programando direto no botão pesquisar, está ai caso alguém precise, usei um pouco de cada resposta acima e consegui montar esse código, está funcional. Valeu galera !!! 

    Public Sub Btnpesquisar_Click(sender As Object, e As EventArgs) Handles Btnpesquisar.Click
            Dim blnResultado As Boolean
            Dim strCPF As String
            Dim Numero(13) As Integer
            Dim soma As Integer
            ' Dim Numero(14) As Integer
            ' Dim soma As Integer
            Dim i As Integer
            ' Dim valida As Boolean
            Dim resultado1 As Integer
            Dim resultado2 As Integer


            If cmbTipoCliente.Text = "Física" Then
                strCPF = maskcpf.Text
                strCPF = Replace(strCPF, ",", "")
                strCPF = Replace(strCPF, ".", "")
                strCPF = Replace(strCPF, "/", "")
                strCPF = Replace(strCPF, "-", "")

                If Not IsNumeric(strCPF) Or Len(strCPF) <> 11 Or strCPF = "00000000000" Or strCPF = "11111111111" Or strCPF = "22222222222" Or strCPF = "333333333333" Or
                   strCPF = "44444444444" Or strCPF = "55555555555" Or strCPF = "66666666666" Or strCPF = "77777777777" Or strCPF = "88888888888" Or strCPF = "99999999999" Then
                    blnResultado = False
                Else

                    Dim Conta As Integer, Resto As Integer, Passo As Integer

                    strCPF = Trim(strCPF)

                    For Passo = 11 To 12
                        soma = 0
                        For Conta = 1 To Passo - 2
                            soma = soma + Val(Mid(strCPF, Conta, 1)) * (Passo - Conta)
                        Next

                        Resto = 11 - (soma - (Int(soma / 11) * 11))

                        If Resto = 10 Or Resto = 11 Then Resto = 0

                        If Resto <> Val(Mid(strCPF, Passo - 1, 1)) Then
                            blnResultado = False
                        Else
                            blnResultado = True
                        End If
                    Next
                End If
                If blnResultado = True Then
                    MessageBox.Show("Válido")


                Else
                    MessageBox.Show("Dados Invalidos")
                End If
            End If


            'inicio validação CNPJ
            If cmbTipoCliente.Text = "Jurídica" Then
                strCPF = maskcpf.Text
                strCPF = Replace(strCPF, ",", "")
                strCPF = Replace(strCPF, ".", "")
                strCPF = Replace(strCPF, "/", "")
                strCPF = Replace(strCPF, "-", "")

                If Not IsNumeric(strCPF) Or Len(strCPF) <> 14 Or strCPF = "00000000000000" Or strCPF = "11111111111111" Or strCPF = "22222222222222" Or strCPF = "33333333333333" Or
                  strCPF = "44444444444444" Or strCPF = "55555555555555" Or strCPF = "66666666666666" Or strCPF = "77777777777777" Or strCPF = "88888888888888" Or strCPF = "99999999999999" Then
                    blnResultado = MsgBox("CNPJ Invalido")
                Else
                    MsgBox("CNPJ Valido")

                End If


                For i = 0 To Numero.Length - 1
                    Numero(i) = CInt(strCPF.Substring(i, 1))
                Next

                soma = Numero(0) * 5 + Numero(1) * 4 + Numero(2) * 3 + Numero(3) * 2 + Numero(4) * 9 + Numero(5) * 8 + Numero(6) * 7 + Numero(7) * 6 + Numero(8) * 5 + Numero(9) * 4 + Numero(10) * 3 + Numero(11) * 2
                soma = soma - (11 * (Int(soma / 11)))
                If soma = 0 Or soma = 1 Then
                    resultado1 = 0
                Else
                    resultado1 = 11 - soma
                End If

                If resultado1 = Numero(12) Then
                    soma = Numero(0) * 6 + Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2
                    soma = soma - (11 * (Int(soma / 11)))
                    If soma = 0 Or soma = 1 Then
                        resultado2 = 0
                    Else
                        resultado2 = 11 - soma
                    End If
                    If resultado2 = Numero(13) Then
                        Return
                    Else
                        Return
                    End If
                Else
                    Return
                End If

    End Sub

    quarta-feira, 5 de novembro de 2014 19:39
  • Finalmente consegui fazer a validação sem o uso de função, programando direto no botão pesquisar, está ai caso alguém precise, usei um pouco de cada resposta acima e consegui montar esse código, está funcional. Valeu galera !!! 

    Public Sub Btnpesquisar_Click(sender As Object, e As EventArgs) Handles Btnpesquisar.Click
            Dim blnResultado As Boolean
            Dim strCPF As String
            Dim Numero(13) As Integer
            Dim soma As Integer
            ' Dim Numero(14) As Integer
            ' Dim soma As Integer
            Dim i As Integer
            ' Dim valida As Boolean
            Dim resultado1 As Integer
            Dim resultado2 As Integer


            If cmbTipoCliente.Text = "Física" Then
                strCPF = maskcpf.Text
                strCPF = Replace(strCPF, ",", "")
                strCPF = Replace(strCPF, ".", "")
                strCPF = Replace(strCPF, "/", "")
                strCPF = Replace(strCPF, "-", "")

                If Not IsNumeric(strCPF) Or Len(strCPF) <> 11 Or strCPF = "00000000000" Or strCPF = "11111111111" Or strCPF = "22222222222" Or strCPF = "333333333333" Or
                   strCPF = "44444444444" Or strCPF = "55555555555" Or strCPF = "66666666666" Or strCPF = "77777777777" Or strCPF = "88888888888" Or strCPF = "99999999999" Then
                    blnResultado = False
                Else

                    Dim Conta As Integer, Resto As Integer, Passo As Integer

                    strCPF = Trim(strCPF)

                    For Passo = 11 To 12
                        soma = 0
                        For Conta = 1 To Passo - 2
                            soma = soma + Val(Mid(strCPF, Conta, 1)) * (Passo - Conta)
                        Next

                        Resto = 11 - (soma - (Int(soma / 11) * 11))

                        If Resto = 10 Or Resto = 11 Then Resto = 0

                        If Resto <> Val(Mid(strCPF, Passo - 1, 1)) Then
                            blnResultado = False
                        Else
                            blnResultado = True
                        End If
                    Next
                End If
                If blnResultado = True Then
                    MessageBox.Show("Válido")


                Else
                    MessageBox.Show("Dados Invalidos")
                End If
            End If


            'inicio validação CNPJ
            If cmbTipoCliente.Text = "Jurídica" Then
                strCPF = maskcpf.Text
                strCPF = Replace(strCPF, ",", "")
                strCPF = Replace(strCPF, ".", "")
                strCPF = Replace(strCPF, "/", "")
                strCPF = Replace(strCPF, "-", "")

                If Not IsNumeric(strCPF) Or Len(strCPF) <> 14 Or strCPF = "00000000000000" Or strCPF = "11111111111111" Or strCPF = "22222222222222" Or strCPF = "33333333333333" Or
                  strCPF = "44444444444444" Or strCPF = "55555555555555" Or strCPF = "66666666666666" Or strCPF = "77777777777777" Or strCPF = "88888888888888" Or strCPF = "99999999999999" Then
                    blnResultado = MsgBox("CNPJ Invalido")
                Else
                    MsgBox("CNPJ Valido")

                End If


                For i = 0 To Numero.Length - 1
                    Numero(i) = CInt(strCPF.Substring(i, 1))
                Next

                soma = Numero(0) * 5 + Numero(1) * 4 + Numero(2) * 3 + Numero(3) * 2 + Numero(4) * 9 + Numero(5) * 8 + Numero(6) * 7 + Numero(7) * 6 + Numero(8) * 5 + Numero(9) * 4 + Numero(10) * 3 + Numero(11) * 2
                soma = soma - (11 * (Int(soma / 11)))
                If soma = 0 Or soma = 1 Then
                    resultado1 = 0
                Else
                    resultado1 = 11 - soma
                End If

                If resultado1 = Numero(12) Then
                    soma = Numero(0) * 6 + Numero(1) * 5 + Numero(2) * 4 + Numero(3) * 3 + Numero(4) * 2 + Numero(5) * 9 + Numero(6) * 8 + Numero(7) * 7 + Numero(8) * 6 + Numero(9) * 5 + Numero(10) * 4 + Numero(11) * 3 + Numero(12) * 2
                    soma = soma - (11 * (Int(soma / 11)))
                    If soma = 0 Or soma = 1 Then
                        resultado2 = 0
                    Else
                        resultado2 = 11 - soma
                    End If
                    If resultado2 = Numero(13) Then
                        Return
                    Else
                        Return
                    End If
                Else
                    Return
                End If

    End Sub

    Boa notícia!
    quarta-feira, 5 de novembro de 2014 19:55