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

Validação de CPF, CNPJ, PIS/PASEB


pablomoreiragv

Pergunta

Já peguei alguns códigos na net e não consigo fazê-los rodar. Peço aos amigos para que possam me ajudar com um passo a passo de como fazer para validar estes campos, pois os textbox's estão incorporados em um planilha e todos os exemplos que encontro são usados em formulários. Não tenho muita experiência em VBA, mas conto com a ajuda dos amigos. Um abraço.

Editado por Jonathan Queiroz
Remover caixa alta do título conforme regra 3.7 (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Movendo: Microssoft Office --> VBA. Movi também os seus outros dois tópicos.

Obs.:

É proibido postar título/conteúdo em caixa alta conforme a regra 3.7 (ver regras).

3.7 Ao postar uma mensagem, procure usar o tamanho de fonte padrão do fórum, não deixando as letras grandes ou pequenas demais; evite o uso de cores fortes, as quais prejudicam a leitura, e não insira textos totalmente em caixa alta (ESTE É UM TEXTO EM CAIXA ALTA). Tópicos que violarem essa regra serão editados sem prévio aviso.
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Pablo

Código VBA para Conferência do dígito verificador do CNPJ e CPF.

Para usar, coloque o número do CPF ou CNPJ numa célula (por exemplo A1) e em outra célula digite "=CNPJ(A1)" (sem as aspas) .

Clique em ALT+F11, menu Inserir, Módulo.

Neste módulo copie e cola o código abaixo, depois clique em ALT+F11 para retornar a planilha.

Dim mult As Double
Dim div As Double
Dim dig1 As Double
Dim dig2 As Double
Dim somadig1 As Double
Dim somadig2 As Double
Dim x As Double
Dim resultado As String
    
'Esta função pega numero a numero do CPF/CNPJ
Function quociente(num As Double, divisor As Double) As Integer 
Dim cont As Integer 
cont = 0     
Do While num >= divisor 
num = num - divisor 
cont = cont + 1 
Loop     
quociente = cont
End Function
    
'Esta função verifica a validade do CNPJ
Function CNPJ(n As Double) As String 
mult = 6     
div = 10 ^ 13 
somadig1 = 0 
somadig2 = 0 
Do While div <> 10 
acum = n     
x = quociente(n, div) 
somadig2 = somadig2 + x * mult 
If mult = 2 Then mult = 9 Else mult = mult - 1 
somadig1 = somadig1 + x * mult 
n = acum - x * div 
div = div / 10 
Loop     
x = quociente(n, 10) 
somadig1 = (somadig1 * 10) Mod 11 
If somadig1 = 10 Then somadig1 = 0 
somadig2 = somadig2 + somadig1 * mult 
somadig2 = (somadig2 * 10) Mod 11 
If somadig2 = 10 Then somadig2 = 0 
dig1 = x     
dig2 = n Mod 10 
If somadig1 = dig1 And somadig2 = dig2 Then 
resultado = "OK" 
Else     
resultado = "CNPJ INVALIDO" 
End If     
CNPJ = resultado
End Function
    
'Esta função verifica a validade do CPFFunction CPF(n As Double) As String 
mult = 1     
div = 10 ^ 10 
somadig2 = 0 
acum = n     
somadig1 = quociente(n, div) 
n = acum - somadig1 * div 
div = div / 10 
Do While div <> 10 
acum = n     
x = quociente(n, div) 
somadig2 = somadig2 + x * mult 
mult = mult + 1 
somadig1 = somadig1 + x * mult 
n = acum - x * div 
div = div / 10 
Loop     
x = quociente(n, 10) 
somadig1 = somadig1 Mod 11 
If somadig1 = 10 Then somadig1 = 0 
somadig2 = somadig2 + somadig1 * mult 
somadig2 = somadig2 Mod 11 
If somadig2 = 10 Then somadig2 = 0 
dig1 = x     
dig2 = n Mod 10 
If somadig1 = dig1 And somadig2 = dig2 Then 
resultado = "OK" 
Else     
resultado = "CPF INVALIDO" 
End If     
CPF = resultado
End Function

Este código eu encontrei na Net. Veja vai ser útilp você.

Abraços

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,2k
    • Posts
      652k
×
×
  • Criar Novo...