Ir ao conteúdo

Excel - FORMATAR DATA


Netrox92

Posts recomendados

Postado

Ola,

Gostaria de saber como faço para o TextBox1 tenha o formato de data na hora que esta sendo digitado.

Algo como uma MASCARA

Eu consegui fazer uma formula porém ela ainda nao esta como eu quero, e eu nao sei como faze-la

Segue cód


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Dim N_Caractere As Integer

Select Case KeyAscii
Case 8, 48 To 57 ' BackSpace e numericos

N_Caractere = Len(TextBox1)
Select Case N_Caractere

Case 2, 5
TextBox1.Text = TextBox1.Text & "/"
SendKeys "{End}", True

Case Is >= 10
KeyAscii = 0

With TextBox1
If .SelStart Then
.SelStart = .SelStart
If .SelStart = 2 Or .SelStart = 5 Then
.SelText = "/"
End If
.SelLength = -1
.SelText = ""
End If
.SetFocus
End With

End Select

Case Else ' o resto é travado
KeyAscii = 0
End Select

Esse cód escreve as barras na hora que eu estou digitando e nao deixa eu escrever mais do que 10 caracteres.

o único problema dele é que é necessario apertar 2 vezes o mesmo valor para ele alterar o caractere da frente. E dependendo de como escreve ele acaba colocando fora de ordem deixando mais de 3 números no meio

Gostaria de saber como eu faço para quando eu digitar ele apague o caractere da frente e escreva o que eu digitei? (Algo parecido com o que acontece quando o Insert esta ativado)

Alguem sabe como resolvo isso???

Ou se existe alguma outra solução ou cód diferente?

Obrigado mais uma vez

abraços

  • 2 semanas depois...
Postado

Ola,

Ninguem saberia me responder como fazer uma mascara para data?

__/__/____

meu objetivo era que as barras estejam sempre visíveis, por exemplo:

A data 15/05/2013, quando eu começo a digitar ficaria:

1_/__/____

15/__/____

15/0_/____

15/05/____

15/05/20__

15/05/201_

15/05/2013

e se eu apagasse ficaria:

15/05/2013

15/05/201_

15/05/20__

15/05/2___

15/05/____

15/0_/____

...

Ou seja as barras estariam sempre la, conforme eu digito a data ele iria preenchendo, e conforme eu ia apagando ia deletando, mas sempre mantendo as "/" e sempre mantendo o que foi digitado no lugar certo

Se alguem souber como resolve isso ficarei grato

Obrigado abraços

Postado

Olá Netrox92

Eu uso este código e funciona, teste aí e veja se resolve.

Private Sub txt_DataInicio_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = vbKeyBack Then

Else

If Len(txt_DataInicio.Text) = 2 Or Len(txt_DataInicio.Text) = 5 Then

txt_DataInicio.Text = txt_DataInicio.Text & "/"

txt_DataInicio.SelStart = Len(txt_DataInicio.Text) + 1

End If

End If

End Sub

Márcio

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!