Página 1 de 1

BackSpace no TextBox não apaga tudo

Enviado: 20 Set 2021 às 23:20
por Aurea
Boa noite, tudo bem?

No meu projetinho quando utilizo o Backspace no campo "Data" ficam as barras ///, já no campo "Ponto" ele apaga o texto q eu digito mas o que adc no código fica se repetindo.
Como o arquivo q eu tenho é muito grande, vou colocar aqui o código, mas se alguém achar que precisa, pode me pedir que faço o envio do arquivo.


Att,
Código: Selecionar todos
'Quantidade máxima de caracteres para a data
Private Sub TextBoxData_Change()
    TextBoxData.MaxLength = 10
    
If Len(TextBoxData) = 2 Or Len(TextBoxData) = 5 Then
      TextBoxData = TextBoxData & "/"
      Else
If KeyAscii < 48 Or KeyAscii > 57 Then
    KeyAscii = 0
    
      End If
        End If
End Sub

'Inibe caracteres especiais e letras no campo de data
Private Sub TextBoxData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then
       KeyAscii = 0

    End If
End Sub

'Define o números de caracteres para Ponto e adc OL
Private Sub TextBoxPonto_Change()

TextBoxPonto.MaxLength = 2

If Len(TextBoxPonto) = 0 Or Len(TextBoxPonto) = 2 Then
      TextBoxPonto = "OL" & TextBoxPonto
    End If
End Sub

Re: BackSpace no TextBox não apaga tudo

Enviado: 21 Set 2021 às 09:09
por Basole
@Aurea experimente desta forma:
Código: Selecionar todos
Private Sub TextBoxData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  'Limita a Qde de caracteres
 TextBoxData.MaxLength = 10
  'Formato DD/MM/AAAA
    Select Case KeyAscii
    Case 8, 48 To 57 ' BackSpace e numericos
        If Len(TextBoxData) = 2 Or Len(TextBoxData) = 5 Then
            TextBoxData.Text = TextBoxData.Text & "/"
            SendKeys "{End}", False
        End If
    Case Else
    KeyAscii = 0
    End Select
End Sub
Mas o ideal, para esses caso de data é inserir um calendario onde o usuario seleciona a data "pronta" evitando datas invalidas como por exemplo 30/02/2021

Anexei um exemplo de calendario em userform que roda tambem no office 64 bits. Caso queira utiliza-lo, exporte o userform em questão para uma pasta qualquer e importe para o seu projeto.