Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por Aurea
Posts Avatar
#67063
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
Avatar do usuário
Por Basole
Posts Avatar
#67064
@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.
Você não está autorizado a ver ou baixar esse anexo.
Aurea agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord