@@ismaelmarins7 , acho que consegui...dá uma olhada aqui abaixo, no meu tá funcionando. Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Limita a Qde de caracteres no campo, neste caso caixa_telefone.MaxLength = 11
If Len(caixa_telefone) = 10 Then caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000") Else caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000") End If End Sub
eu encontrei uma solução um pouquinho diferente Private Sub txt_telefone1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) txt_telefone1.MaxLength = 14 Select Case KeyAscii Case 8 Case 13: SendKeys "{TAB}" Case 48 To 57 If txt_telefone1.SelStart = 0 Then txt_telefone1.SelText = "(" If txt_telefone1.SelStart = 3 Then txt_telefone1.SelText = ")" If txt_telefone1.SelStart = 8 Then txt_telefone1.SelText = "-" If txt_telefone1.SelStart = 13 Then txt_telefone1 = Replace(txt_telefone1, "(", "") txt_telefone1 = Replace(txt_telefone1, ")", "") txt_telefone1 = Replace(txt_telefone1, "-", "") txt_telefone1 = Format(txt_telefone1, "(00)00000-000") End If Case Else: KeyAscii = 0 End Select End Sub
Respondi pro Ismael...no meu tá funcionando com esse código abaixo...vc tem de alterar o nome da "caixa de telefone", pq com certeza tem nome diferente do meu. Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Limita a Qde de caracteres no campo, neste caso caixa_telefone.MaxLength = 11 If Len(caixa_telefone) = 10 Then caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000") Else caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000") End If End Sub
Olá Geraldo Gomes, Boa Noite!! ótima aula, estou com um projeto e quero colocar no mesmo textbox o celular com 8 números e com 9 para ela alinhar conforme os numero, pois tem estado que o celular ainda não tem o numero 9 na frente, você pode me ajudar ? obrigado pela aula e por disponibilizar seu tempo par nos ensinar, Abçs
Ola Pablo Monteiro, td bem Neste caso talvez o ideal seria você ter duas textbox indicando na Label (c/ digito 9) e (sem digito 9) e só mudaria o código para a textbox sem o digito 9, a MaxLength = 14 Não sei se te ajudei, mais qualquer duvida vamos conversando, sera um prazer ajudar. abraço
Respondi pro Ismael...no meu tá funcionando com esse código abaixo...vc tem de alterar o nome da "caixa de telefone", pq com certeza tem nome diferente do meu. Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Limita a Qde de caracteres no campo, neste caso caixa_telefone.MaxLength = 11
If Len(caixa_telefone) = 10 Then caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000") Else caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000") End If End Sub
show de bola, era disso que estava precisando!!! muito obrigado!
LEGAL.... ESTAVA PRECISANDO DESTES CÓDIGOS. CONSEGUI RESOLVER NO ME FORMULÁRIO AS FORMATAÇÕES DE DE DATA
Irmão, muito bom, mas eu queria digitar "fixo ou celular" na mesma textbox. Pode ajudar?
Tenho a mesma dúvida
@@ismaelmarins7 , acho que consegui...dá uma olhada aqui abaixo, no meu tá funcionando.
Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Limita a Qde de caracteres no campo, neste caso
caixa_telefone.MaxLength = 11
If Len(caixa_telefone) = 10 Then
caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000")
Else
caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000")
End If
End Sub
@@marcosvik4530 vou tentar, depois te dou um retorno.
@@marcosvik4530 Tu é monstro, valew mesmo
eu encontrei uma solução um pouquinho diferente
Private Sub txt_telefone1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
txt_telefone1.MaxLength = 14
Select Case KeyAscii
Case 8
Case 13: SendKeys "{TAB}"
Case 48 To 57
If txt_telefone1.SelStart = 0 Then txt_telefone1.SelText = "("
If txt_telefone1.SelStart = 3 Then txt_telefone1.SelText = ")"
If txt_telefone1.SelStart = 8 Then txt_telefone1.SelText = "-"
If txt_telefone1.SelStart = 13 Then
txt_telefone1 = Replace(txt_telefone1, "(", "")
txt_telefone1 = Replace(txt_telefone1, ")", "")
txt_telefone1 = Replace(txt_telefone1, "-", "")
txt_telefone1 = Format(txt_telefone1, "(00)00000-000")
End If
Case Else: KeyAscii = 0
End Select
End Sub
Pergunta, se na mesma caixa de texto eu inserir telefones fixos e celulares, como eu ajeitaria o código pra ele configurar as duas versões??
Respondi pro Ismael...no meu tá funcionando com esse código abaixo...vc tem de alterar o nome da "caixa de telefone", pq com certeza tem nome diferente do meu.
Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Limita a Qde de caracteres no campo, neste caso
caixa_telefone.MaxLength = 11
If Len(caixa_telefone) = 10 Then
caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000")
Else
caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000")
End If
End Sub
Saudações! Na quinta linha do código "Case 13: SendKeys "{TAB}"", voce diz: "Abre colchetes" quando na verdade são chaves e não colchetes.
Olá Geraldo Gomes, Boa Noite!!
ótima aula, estou com um projeto e quero colocar no mesmo textbox o celular com 8 números e com 9 para ela alinhar conforme os numero, pois tem estado que o celular ainda não tem o numero 9 na frente, você pode me ajudar ?
obrigado pela aula e por disponibilizar seu tempo par nos ensinar, Abçs
Ola Pablo Monteiro, td bem
Neste caso talvez o ideal seria você ter duas textbox indicando na Label (c/ digito 9) e (sem digito 9) e só mudaria o código para a textbox sem o digito 9, a MaxLength = 14
Não sei se te ajudei, mais qualquer duvida vamos conversando, sera um prazer ajudar.
abraço
Respondi pro Ismael...no meu tá funcionando com esse código abaixo...vc tem de alterar o nome da "caixa de telefone", pq com certeza tem nome diferente do meu.
Private Sub caixa_telefone_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Limita a Qde de caracteres no campo, neste caso
caixa_telefone.MaxLength = 11
If Len(caixa_telefone) = 10 Then
caixa_telefone = Format(caixa_telefone, "(00"") ""0000""-""0000")
Else
caixa_telefone = Format(caixa_telefone, "(00"") ""00000""-""0000")
End If
End Sub