Função ValidaCPF
'Simplemente Cole no Modulo Public Function Modulo11(numero As String) As String Dim I As Integer Dim Produto As Integer Dim Multiplicador As Integer Dim Digito As Integer ' Válida Argumento If Not IsNumeric(numero) Then Modulo11 = "" Exit Function End If ' Cálcula Dígito no Módulo 11 Multiplicador = 2 For I = Len(numero) To 1 Step -1 Produto = Produto + Val(Mid(numero, I, 1)) * Multiplicador Multiplicador = IIf(Multiplicador = 9, 2, Multiplicador + 1) Next ' Exceção Digito = 11 - Int(Produto Mod 11) Digito = IIf(Digito = 10 Or Digito = 11, 0, Digito) ' Retorna Modulo11 = Trim(Str(Digito)) End Function ' Válida CGC Public Function ValidaCGC(Cgc As String) As Boolean 'Obs. Os parametros devem ser passados sem nenhuma pontuação! ' Válida argumento If Len(Cgc) <> 14 Then ValidaCGC = False Exit Function End If ' Válida Primeiro Dígito If Modulo11(Left(Cgc, 12)) <> Mid(Cgc, 13, 1) Then ValidaCGC = False Exit Function End If ' Válida Segundo Dígito If Modulo11(Left(Cgc, 13)) <> Mid(Cgc, 14, 1) Then ValidaCGC = False Exit Function End If ValidaCGC = True End Function ' Válida o CPF Public Function ValidaCPF(Cpf As String) As Boolean 'Obs. Os parametros devem ser passados sem nenhuma pontuação! 'Dim WdigitoDoCPF Dim wSomaDosProdutos Dim wResto Dim wDigitChk1 Dim wDigitChk2 Dim wStatus Dim wI wSomaDosProdutos = 0 For wI = 1 To 9 wSomaDosProdutos = wSomaDosProdutos + Val(Mid(Cpf, wI, 1)) * (11 - wI) Next wI wResto = wSomaDosProdutos - Int(wSomaDosProdutos / 11) * 11 wDigitChk1 = IIf(wResto = 0 Or wResto = 1, 0, 11 - wResto) wSomaDosProdutos = 0 For wI = 1 To 9 wSomaDosProdutos = wSomaDosProdutos + (Val(Mid(Cpf, wI, 1)) * (12 - wI)) Next wI wSomaDosProdutos = wSomaDosProdutos + (2 * wDigitChk1) wResto = wSomaDosProdutos - Int(wSomaDosProdutos / 11) * 11 wDigitChk2 = IIf(wResto = 0 Or wResto = 1, 0, 11 - wResto) If Mid(Cpf, 10, 1) = Mid(Trim(Str(wDigitChk1)), 1, 1) And Mid(Cpf, 11, 1) = Mid(Trim(Str(wDigitChk2)), 1, 1) Then ValidaCPF = True Else ValidaCPF = False End If End Function
VOLTAR