Bom dia meus camaradas,
É o seguinte a minha estrutura é a seguinte, Tenho no meu FORM (1 comboBox, 1 TextBox) e possuo tbem um Módulo Auxiliar, segue o código abaixo da estrutura.
Private Sub UserForm_Initialize()
'preenche a cboCnpjCpf
cboCnpjCpf.AddItem "Física"
cboCnpjCpf.AddItem "Jurídica"
End Sub
==============================
Private Sub txtCnpjCpf_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 8, 48 To 57
If Me.cboCnpjCpf.Text = "Jurídica" Then
Me.txtCnpjCpf.MaxLength = 18 ' Quantidade máxima de caracteres no textbox CNPJ
If Len(txtCnpjCpf) = 2 Then txtCnpjCpf = txtCnpjCpf + "."
If Len(txtCnpjCpf) = 6 Then txtCnpjCpf = txtCnpjCpf + "."
If Len(txtCnpjCpf) = 10 Then txtCnpjCpf = txtCnpjCpf + "/"
If Len(txtCnpjCpf) = 15 Then txtCnpjCpf = txtCnpjCpf + "-"
mAuxiliar.ValidaçãoCNPJ
Else
Me.txtCnpjCpf.MaxLength = 14 ' Quantidade máxima de caracteres no textbox Cpf
If Len(txtCnpjCpf) = 3 Then txtCnpjCpf = txtCnpjCpf + "."
If Len(txtCnpjCpf) = 7 Then txtCnpjCpf = txtCnpjCpf + "."
If Len(txtCnpjCpf) = 11 Then txtCnpjCpf = txtCnpjCpf + "-"
mAuxiliar.ValidaçãoCPF
End If
Case Else
KeyAscii = 0
End Select
End Sub
========================
Módulo mAuxiliar
========================
Option Explicit
Function ValidaçãoCNPJ(ByVal sCNPJ As String) As Boolean
Dim sVerificador1 As String
Dim sVerificador2 As String
Dim l As Long
Dim lOffset As Long
Dim lTotal As Long
Dim lResto As Long
'Limpa barras, traços e pontos do CNPJ, caso haja:
sCNPJ = Replace(sCNPJ, ".", vbNullString)
sCNPJ = Replace(sCNPJ, "-", vbNullString)
sCNPJ = Replace(sCNPJ, "/", vbNullString)
sCNPJ = Replace(sCNPJ, " ", vbNullString)
'Verifica se o CNPJ possui 11 caracteres
If Not Len(sCNPJ) = 14 Or Not IsNumeric(sCNPJ) Then Exit Function
'Obtém os dígitos verificadores do CNPJ
sVerificador1 = Mid(sCNPJ, 13, 2)
sCNPJ = Left(sCNPJ, 12)
'Calcula os dígitos verificadores de acordo
'com as regras do Ministério da Fazenda:
'--- Início ---
'O código do laço executará duas vezes
Do Until Len(sCNPJ) = 14
'Rotina para efetuar o cálculo da soma de produtos
lOffset = 2
lTotal = 0
For l = Len(sCNPJ) To 1 Step -1
If lOffset > 9 Then lOffset = 2
lTotal = lTotal + ((Mid(sCNPJ, l, 1)) * lOffset)
lOffset = lOffset + 1
Next l
'Cálculo para obter dígito verificador
l = lTotal Mod 11
l = 11 - l
If l = 10 Or l = 11 Then l = 0
'Concatena o dígito l ao CNPJ
sCNPJ = sCNPJ & CStr(l)
Loop
'Retorna os dígitos verificadores
sVerificador2 = Right(sCNPJ, 2)
'Se comparação entre dígitos verificadores for Verdadeiro,
'então o número do CNPJ é válido:
ValidaçãoCNPJ = (sVerificador1 = sVerificador2)
End Function
Function ValidaçãoCPF(ByVal sCPF As String) As Boolean
Dim sVerificador1 As String
Dim sVerificador2 As String
Dim l As Long
Dim lOffset As Long
Dim lTotal As Long
'Limpa traços e pontos do CPF, caso haja:
sCPF = Replace(sCPF, ".", vbNullString)
sCPF = Replace(sCPF, "-", vbNullString)
sCPF = Replace(sCPF, " ", vbNullString)
'Verifica se o CPF possui 11 caracteres
If Not Len(sCPF) = 11 Or Not IsNumeric(sCPF) Then Exit Function
'Obtém os dígitos verificadores do CPF
sVerificador1 = Right(sCPF, 2)
sCPF = Left(sCPF, 9)
'Calcula os dígitos verificadores de acordo
'com as regras do Ministério da Fazenda:
'--- Início ---
'O código do laço executará duas vezes
Do Until Len(sCPF) = 11
'Rotina para efetuar o cálculo da soma de produtos
lOffset = 2
lTotal = 0
For l = Len(sCPF) To 1 Step -1
lTotal = lTotal + (Mid(sCPF, l, 1) * lOffset)
lOffset = lOffset + 1
Next l
'Cálculo para obter dígito verificador
l = lTotal Mod 11
l = 11 - l
If l = 10 Or l = 11 Then l = 0
'Concatena o dígito l ao CPF
sCPF = sCPF & CStr(l)
Loop
'Os dígitos verifadores são os dois últimos algarismos
sVerificador2 = Right(sCPF, 2)
'--- Fim ---
'Se comparação entre dígitos verificadores for Verdadeiro,
'então o número do CPF é válido:
ValidaçãoCPF = (sVerificador1 = sVerificador2)
End Function
Está dando o seguinte erro:
Erro de Compilação: O argumento não é opcional
Oq eu faço?
Postado : 25/11/2013 8:13 am