Notifications
Clear all

Como apagar caracteres em um textbox com máscara?

3 Posts
2 Usuários
0 Reactions
995 Visualizações
(@eric-jhon)
Posts: 17
Active Member
Topic starter
 

Criei uma máscara de telefone com DDD em um textbox. Conforme o usuário vai digitando o número do telefone o código seguinte vai dando o formato de telefone:

Private Sub Telefone_Change()
If Len(Telefone) = 1 Then
    Telefone.Value = "(" + Telefone.Value
End If

If Len(Telefone) = 3 Then
    Telefone.Value = Telefone.Value + ")"
End If

If Len(Telefone) = 4 Then
    Telefone.Value = Telefone.Value + " "
End If

If Len(Telefone) = 9 Then
    Telefone.Value = Telefone.Value + "-"
End If
End Sub

Porém, quando eu pressiono a tecla BACKSPACE para corrigir algum caractere o código acima não permite. Então eu gostaria de uma forma em que esse código acima fosse executado normalmente menos quando a tecla BACKSPACE fosse pressionada.

 
Postado : 23/02/2016 12:34 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Tente trocar o evento change para exit ou seja qdo vc sair do textbox vai executar o codigo

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 23/02/2016 12:42 pm
(@eric-jhon)
Posts: 17
Active Member
Topic starter
 

Consegui resolver com o evento KeyPress

Private Sub Telefone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Len(Telefone) = 1 Then
        Telefone.Value = "(" + Telefone.Value
    End If
    
    If Len(Telefone) = 3 Then
        Telefone.Value = Telefone.Value + ")"
    End If
    
    If Len(Telefone) = 4 Then
        Telefone.Value = Telefone.Value + " "
    End If
    
    If Len(Telefone) = 9 Then
        Telefone.Value = Telefone.Value + "-"
    End If
End Sub
 
Postado : 23/02/2016 12:59 pm