RUN-TIME ERROR 5
Boa tarde.
Tenho uma rotina que checa CPF e funciona normalmente em tempo de projeto. Quando o sistema é compilado dá mensagem de run-time error 5 (Invalid procedure call or argument). Alguém pode me ajudar??
Abaixo como chamo a função, que está em um módulo, e a própria função.
Obrigado pela ajuda.
Evandro Melo.
Private Sub txtCpf_LostFocus()
wValida = FU_ValidaCPF(txtCpf.Text)
If Not wValida Then
MsgBox "CPF Inválido", 48, "Atenção"
txtCpf.SetFocus
End If
End Sub
' Valida CPF está em um módulo
Public Function FU_ValidaCPF(CPF As String) As Boolean
Dim soma As Integer
Dim Resto As Integer
Dim i As Integer
'Valida argumento
If Len(CPF) <> 11 Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 9
soma = soma + Val(Mid$(CPF, i, 1)) * (11 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 10, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 10
soma = soma + Val(Mid$(CPF, i, 1)) * (12 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 11, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
FU_ValidaCPF = True
End Function
Tenho uma rotina que checa CPF e funciona normalmente em tempo de projeto. Quando o sistema é compilado dá mensagem de run-time error 5 (Invalid procedure call or argument). Alguém pode me ajudar??
Abaixo como chamo a função, que está em um módulo, e a própria função.
Obrigado pela ajuda.
Evandro Melo.
Private Sub txtCpf_LostFocus()
wValida = FU_ValidaCPF(txtCpf.Text)
If Not wValida Then
MsgBox "CPF Inválido", 48, "Atenção"
txtCpf.SetFocus
End If
End Sub
' Valida CPF está em um módulo
Public Function FU_ValidaCPF(CPF As String) As Boolean
Dim soma As Integer
Dim Resto As Integer
Dim i As Integer
'Valida argumento
If Len(CPF) <> 11 Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 9
soma = soma + Val(Mid$(CPF, i, 1)) * (11 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 10, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 10
soma = soma + Val(Mid$(CPF, i, 1)) * (12 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 11, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
FU_ValidaCPF = True
End Function
Tópico encerrado , respostas não são mais permitidas