Notifications
Clear all

Como apagar caracteres em um textbox com máscara?

3 Posts
2 Usuários
0 Reactions
990 Visualizações
(@eric-jhon)
Posts: 0
New 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: 0
New Member
 

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

 
Postado : 23/02/2016 12:42 pm
(@eric-jhon)
Posts: 0
New 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