Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardo.frias

Máscara de CNPJ/CPF em Textbox

Recommended Posts

Galera, boa noite.

Estou tentando formatar um campo textbox, mas tá dando erro, alguém sabe pq?

 

 

Private Sub txtCNPJCPF_LostFocus()

If Len(txtCNPJCPF.Text) = 14 Then

txtCNPJCPF.Text = Format(txtCNPJCPF.Text, "00.000.000/0000-00")

ElseIf Len(txtCNPJCPF.Text) = 11 Then

txtCNPJCPF.Text = Format(txtCNPJCPF.Text, "000.000.000-00")

Else

MsgBox "Formato inválido, verifique!", vbCritical

End If

End Sub

Por exemplo, se eu digitar: 12345678000120, ele formata: 12345678000120,000.000/0000-00

 

Obrigado

 

Ricardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummmm... não sei t dizer com detalhes o por que dele fazer isso ehemas, parece que está tentando aplicar separador de milhar e casa decimal no conteúdo.Ponto no formato americano é considerado como casa decimal, e nesta expressão ele está entendendo que deve formatar com casas decimais.você pode fazer o seguinte, p/ aproveitar a função ae:

Private Sub txtCNPJCPF_LostFocus()If Len(txtCNPJCPF.Text) = 14 ThentxtCNPJCPF.Text = Replace(Format(txtCNPJCPF.Text, "00 000 000/0000-00")," ",".")ElseIf Len(txtCNPJCPF.Text) = 11 ThentxtCNPJCPF.Text = Replace(Format(txtCNPJCPF.Text, "000 000 000-00")," ",".")ElseMsgBox "Formato inválido, verifique!", vbCriticalEnd IfEnd Sub

Observe o espaço no format e o Replace p/ substituir o espaço por ponto.Sei que não é elegante, mas por hora é funcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que ele não interpreta o ponto como um caractere qualquer e sim como separador decimal (assim como o cassitos disse) daí para evitar isso você deve usar a barra ( \ ) antes de cada caractere, para que ele seja entendido como texto.

Assim:

 

Format("13245678901234", "00\.000\.000\/0000\-00")

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.