Seguinte pessoal,
qdo eu executo meu programa pelo VB, os tratamentos de erro funcionam direito, porém quando eu compilo e executo direto o executável, ele dá um erro:
Run Time error "5"
Invalid procedure or call argument
e daí finaliza o programa
Tenho uma função de verificação de CPF/CNPJ, em um módulo, dessa forma:
Public vErro As Boolean
Public Function isCNPJ(ByVal pCNPJ As String) As Boolean
Dim Conta As Integer, Soma As Long, Passo As Integer
Dim Digito1 As Integer, Digito2 As Integer, Flag As Integer
vErro = False
isCNPJ = False: pCNPJ = Trim(pCNPJ)
If Len(pCNPJ) <> 14 Then
vErro = True
End If
For Passo = 5 To 6
Soma = 0
Flag = Passo
For Conta = 1 To Passo + 7
Soma = Soma + (Val(Mid(pCNPJ, Conta, 1)) * Flag)
Flag = IIf(Flag > 2, Flag - 1, 9)
Next
Soma = Soma Mod 11
If Passo = 5 Then Digito1 = IIf(Soma > 1, 11 - Soma, 0)
If Passo = 6 Then Digito2 = IIf(Soma > 1, 11 - Soma, 0)
Next
If (Digito1 = Val(Mid(pCNPJ, 13, 1)) And Digito2 = Val(Mid(pCNPJ, 14, 1))) Then
isCNPJ = True
Else
vErro = True
End If
End Function
Public Function isCPF(ByVal pCPF As String) As Boolean
Dim Conta As Integer, Soma As Integer, Resto As Integer, Passo As Integer
vErro = False
isCPF = False: pCPF = Trim(pCPF)
If Len(pCPF) <> 11 Then
vErro = True
End If
For Passo = 11 To 12
Soma = 0
For Conta = 1 To Passo - 2
Soma = Soma + Val(Mid(pCPF, 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(pCPF, Passo - 1, 1)) Then
vErro = True
End If
Next
isCPF = True
End Function
Aí no evento LostFocus da textbox, tem o código:
Private Sub txtCPF_LostFocus()
If Not txtCPF.Text = Empty Then
Call isCPF(txtCPF.Text)
If CNPJ_CPF.vErro = True Then
MsgBox "CPF inválido", vbInformation + vbOKOnly + vbApplicationModal, ""
txtCPF.SetFocus
End If
End If
End Sub
Private Sub txtCNPJ_LostFocus()
If Not txtCNPJ.Text = Empty Then
Call isCNPJ(txtCNPJ.Text)
If CNPJ_CPF.vErro = True Then
MsgBox "CNPJ inválido", vbInformation + vbOKOnly + vbApplicationModal, ""
txtCNPJ.SetFocus
End If
End If
End Sub
O que pode estar ocorrendo???
Agradeço!