Usuário com melhor resposta
CONFIGURAR TEXTBOX PARA DATA

Pergunta
-
Olá caros amigos..saudações a todos.
Gostaria de saber como criar uma sub em VBA no Excel para que ao ser digitado um valor na textbox ele separe para mim com as barras de data?
Ex: eu crio uma userform e coloco uma textbox1. Digito nessa textbox o valor 030308 e após clicar ENTER o valor fique separado como data 03/03/08
Tentei o seguinte :
TextBox1.Value = Format(TextBox1.Value, "dd/mm/yy")
Digitei o valor 030308 só que o resultado deu 23/12/82
Mais uma vez muito obrigado!!!
Respostas
-
Outra opção de formatação:
Code SnippetTextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value, 3, 2) & "/" & Right(TextBox1.Value, 2))OBS: o problema inicial ocorreu por que o Excel converteu o número serial 030308 no correspondente valor de data.
Ou seja, o número foi 030308 foi formatado como data.
[ ]s
-
Todas as Respostas
-
-
Outra opção de formatação:
Code SnippetTextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value, 3, 2) & "/" & Right(TextBox1.Value, 2))OBS: o problema inicial ocorreu por que o Excel converteu o número serial 030308 no correspondente valor de data.
Ou seja, o número foi 030308 foi formatado como data.
[ ]s
-
Meus amigos:
Mais uma vez vocês vêem me ajudar nas minhas questões rsrsrsrsrs
As duas formas funcionaram corretamente mas a Sub que o Adilson postol ne atendeu melhor, pois a textbox que eu uso para colocar a data é somada com um adicional de 3 dias, ou seja, se eu colocar na textbox a data 030308 ( 03/03/08 ) essa data recebe uma soma de 3 dias e fica assim 06/03/08.
A sub que você postol meu amigo Hideo Kawashima quando tentei somar os 3 dias na data que eu digitei na textbox está dando erro. Mas ela formatou os valores corretamente, só não realizou a soma.
Agradeço a vocês pela grande ajuda!!!
Muito obrigado!!!
-
Boa Noite BRAZ CRUZEIRO:Estou precisando utilizar o mesmo código para validar data em textbox.Entretanto, estou iniciando o aprendizado em programação e não sei aonde, em que local do código devo implementar o procedimento.Você poderia me orientar a esse respeito?Muito Obrigado pela sua atenção.Sucesso!
-
Adilson Soledade wrote: Outra opção de formatação:
Code SnippetTextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value, 3, 2) & "/" & Right(TextBox1.Value, 2))OBS: o problema inicial ocorreu por que o Excel converteu o número serial 030308 no correspondente valor de data.
Ou seja, o número foi 030308 foi formatado como data.
[ ]s
Boa Noite ADILSON SOLEDADE:Estou tentando formatar um textbox para data e vi sua resposta.Implementei seu código; entretanto, gera erro em tempo de execução: erro 13: tipos incompatíveis.Você poderia me ajudar a resolver este erro?Desde já agradeço.Muito Obrigado! -
-
Bom dia MBFIGUEIREDO:Muito obrigado pelo seu interesse.Segue abaixo o trecho do código.Eu já implementei ele em vários locais (Initialize, change, click, etc...). Sempre apresenta o mesmo erro.Pretendo utilizar a data em alguns cálculos.Sucesso!Private Sub UserForm_Initialize()TextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value, 3, 2) & "/" & Right(TextBox1.Value, 2))End Sub
-
Olá..
Use este evento
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If IsNumeric(TextBox1) = False Then Exit Sub
If Len(TextBox1) = 8 ThenTextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value,3, 2) & "/" & Right(TextBox1.Value, 2)) End If End Sub
O código será executado quando o text perder o foco e se o valor conter 8 caracteres... 05082008 (por exemplo)
Até.. -
-
-
Boa tarde Alexandre,
Uso esse código porém no meu user form quando da algum erro volta para textbox do erro ao retonar ele le novamente o formato ""dd/mm/yyyy" ai da erro tipo ele insere novamente as / e desconfigura o formato:
ex: /4/2859
podem me ajudar?
-
If (cp_old <> CDate(atualiza_data.dt_cp.Value)) Then Range("G2").ClearContents Range("F2").Value = "não" Range("G2").Value = CDate(atualiza_data.dt_cp.Value) End If
É preciso fazer o cast antes de inserir o valor, caso contrário ele registra como string, conforme o exemplo acima -
Olá..
Use este evento
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If IsNumeric(TextBox1) = False Then Exit Sub
If Len(TextBox1) = 8 ThenTextBox1.Value = FormatDateTime(Left(TextBox1.Value, 2) & "/" & Mid(TextBox1.Value,3, 2) & "/" & Right(TextBox1.Value, 2)) End If End Sub
O código será executado quando o text perder o foco e se o valor conter 8 caracteres... 05082008 (por exemplo)
Até..ola , tudo bem?
Gostaria que me ajudasse a resolver um problema , usei estes codigos para um projeto que estou realizando, no formulario a data aparece com as barras somente usando enter ou tab, e na planilha vem com a data invertida, como posso corrigir estes detalhes, desde ja agradeco!! Ana
-
-
Não sei se entendi oque voce quer, mas se ja conseguiu ótimo, mas uma opção para formatar data na TextBox é colocar este código na TextBox que você vai digitar a data, a barra entra automático.
Private Sub TextBox5_Change()
TextBox5.MaxLength = 10
Select Case KeyAscii
Case 8
Case 13: SendKeys "{TAB}"
Case 48 To 57
If TextBox5.SelStart = 2 Then TextBox5.SelText = "/"
If TextBox5.SelStart = 5 Then TextBox5.SelText = "/"
Case Else: KeyAscii = 0
End Select
If Len(TextBox5) = 2 Then
TextBox5 = TextBox5 + "/"
TextBox5.SelStart = 4
End If
If Len(TextBox5) = 5 Then
TextBox5 = TextBox5 + "/"
TextBox5.SelStart = 7
End If
End Sub -