ZEROS DO CPF
Olá pessoal, estou adaptando um rotina de validação de CPF no VBA-Excel.Procurei aqui no site e encontrei uma que valida legal e esta funcionando no meu sistema ,segue o tópico:
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=324576&varWorld=
Só que tem um problema, quando puxo do cadastro CPF[ô]s que iniciam com zeros na frente, o textbox só exibe os números que vem após e inibe os zeros do começo.Como formatar isso????
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=324576&varWorld=
Só que tem um problema, quando puxo do cadastro CPF[ô]s que iniciam com zeros na frente, o textbox só exibe os números que vem após e inibe os zeros do começo.Como formatar isso????
Olá...
Passe para o Textbox como string....e quando for validar, converta para número....
Acho que vai funcionar.
Sds.
Passe para o Textbox como string....e quando for validar, converta para número....
Acho que vai funcionar.
Sds.
NSTOLBERG, como fazer isso na função do link que disponibilizei acima. A função foi postada pelo MARCELO TREZE em resposta a outro colega do site.Eu simplesmente copiei o código e funcionou perfeitamente, só tive de alterar o nome do text no evento EXIT no form. Alguma idéia????
ALANTB...
Deixa eu ver se entendi direito....
Você está puxando um valor de CPF para o Textbox e depois jogando ele para a validação na Function?
Se é isso....bom...você joga o valor do CPF no Textbox como texto:
Text1.Text = CStr(Numero_CPF)
E quando passar para a Function, manda ele assim:
If ValidaCPF_CNPJ(Cdbl(Text1.Text)) = False Then
MsgBox [Ô]CPF ou CNPJ Informado não é valido[Ô], 64
Text1.SetFocus
Exit Sub
Else
Text1.Text = Formato
End If
Sds.
Deixa eu ver se entendi direito....
Você está puxando um valor de CPF para o Textbox e depois jogando ele para a validação na Function?
Se é isso....bom...você joga o valor do CPF no Textbox como texto:
Text1.Text = CStr(Numero_CPF)
E quando passar para a Function, manda ele assim:
If ValidaCPF_CNPJ(Cdbl(Text1.Text)) = False Then
MsgBox [Ô]CPF ou CNPJ Informado não é valido[Ô], 64
Text1.SetFocus
Exit Sub
Else
Text1.Text = Formato
End If
Sds.
NSTOLBERG, onde fica esse trecho do código:Text1.Text = CStr(Numero_CPF). O restante que aparece acima eu coloquei no evento EXIT do campo txtcpf.text.Numero_CPF é o nome da string????
Eu usei um metodo meio POG
Na tabela de funcionarios, o campo CPF está como tipo numérico e não grava os zeros iniciais. Como não dava pra mudar o tipo, já que eu iria ter que apagar todos os dados eu usei isso:
Select Case Len(RsDados!FUN_NUMEROCPF)
Case 11: itmx.SubItems(3) = Format(RsDados!FUN_NUMEROCPF, [Ô]@@@.@@@.@@@-@@[Ô])
Case 10: itmx.SubItems(3) = [Ô]0[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@@.@@@.@@@-@@[Ô])
Case 9: itmx.SubItems(3) = [Ô]00[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@.@@@.@@@-@@[Ô])
Case 8: itmx.SubItems(3) = [Ô]000.[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@@@.@@@-@@[Ô])
End Select
Num é uma coisa [ô]bonita[ô] de se fazer, mas TIVE que fazer.
Na tabela de funcionarios, o campo CPF está como tipo numérico e não grava os zeros iniciais. Como não dava pra mudar o tipo, já que eu iria ter que apagar todos os dados eu usei isso:
Select Case Len(RsDados!FUN_NUMEROCPF)
Case 11: itmx.SubItems(3) = Format(RsDados!FUN_NUMEROCPF, [Ô]@@@.@@@.@@@-@@[Ô])
Case 10: itmx.SubItems(3) = [Ô]0[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@@.@@@.@@@-@@[Ô])
Case 9: itmx.SubItems(3) = [Ô]00[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@.@@@.@@@-@@[Ô])
Case 8: itmx.SubItems(3) = [Ô]000.[Ô] & Format(RsDados!FUN_NUMEROCPF, [Ô]@@@.@@@-@@[Ô])
End Select
Num é uma coisa [ô]bonita[ô] de se fazer, mas TIVE que fazer.
Anexo Programa Cic e CNPJ
Se verdadeiro o foco fica em text02 caso contrário dá a mensagem de digito inválido e volta o foco
para o text01
. . .
Gente, já tentei esses métodos indicados pelos colegas e nada.Essa validação que estou fazendo é no VBA Excel, ou seja, eu puxo os dados de planilhas que servem como tabelas.No campo CPF da planilha, as celulas estão formatadas de modo personalizado para que os dados(numeros de cpf) fiquem no formato de 11 dÃgitos mesmo com zeros na frente.Pessoal, estava tentando até mesmo trocar o textbox por um masked, mas para complicar ainda mais me exibe a seguinte mensagem na hora que arrasto o controle para o form:[Ô]Não há confiabilidade na entidade para ação especificada[Ô]. Por que a mensagem se o controle esta adicionado corretamente???
cara o fonte que te passei tem no módulo a certificação de dÃgitos de cic e cnpj
funciona também para vba
o que precisa é a formatação do texto estar como string; esse tipo de dado cic e cnpj é sempre string
e não numérico
tenta deixar as células onde tem esta informação como texto no menu formatar - células - texto
em tentei no excel e funcionou, estando as células como texto com todos os dÃgitos do cic ou cnpj digitados.
o que tu pode fazer é direcionar para outra célula uma concatenação dos dados numéricos
com os zeros necessários em outra célula e usar esta nova informação pra verificação do dÃgito.
veja bem a verificação é feita só com os dÃgitos sem as barras e os pontos
, , ,
Pessoal, para que fique visÃvel a todos os colegas do fórum a minha dúvida, estou postando o projeto aqui para que possa ser analisado.Na planilha de cadastro o número de CPF fica com zeros na frente, mas ao puxar para o textbox(txtcpf.txt) não traz os zeros da frente mesmo com células formatadas no modo personalizado. A função que calcula o CPF (de um colega aqui mesmo do fórum) foi feita usando a planilha diretamente, já eu estou usando forms.Não sei se isso influi.Estou tentado validar CPF’s no evento EXIT do campo txtcpf.txt, não sei se é o correto.Sendo assim gostaria da ajuda dos colegas.Valeu!!!!
Cara.
O problema é que você toda hora está chamando txtcpf.value = . . . chamada da célula.value
Faz assim (só pra ver):
Txtcpf.Text = Format(Chamada da célula,[Ô]00000000000[Ô])
Txtcpf.text = txtcpf.text
se não der, chama o valor da célula que tem o cpf para uma variavel string
e ai faz txtcpf.text = format(variavel, [Ô]00000000000[Ô])
Tenta
Tópico encerrado , respostas não são mais permitidas