Ir ao conteúdo
  • Cadastre-se

Excel Como inserir barras automáticas em DATA no TEXTBOX?


Posts recomendados

Boa Tarde a Todos !!!

Pessoal, necessito da ajuda de vocês.

Peguei na Net, um código para inserir as barras no campo de data automaticamente, em uma textbox.

Para o usuário não ter que ficar digitando as " / "

Acontece que essa rotina esta entendendo os dias de 01 a 12 como meses, e retornando para a tabela do Excel como data americana (mm/dd/aaaa)

Quero que a data fique no formato brasileiro  dd/mm/aaaa.

Então se digito na Textbox 01/12/2015 ela manda para Excel como 12/01/2015

 

Como posso resolver isso ?

 

Código que estou usando hoje:
 

 

Private Sub TextBox1_Change()
    'Formata : dd/mm/aaaa
    If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then
        TextBox1.Text = TextBox1.Text & "/"
        SendKeys "{End}", True
    End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Limita a Qde de caracteres
   TextBox1.MaxLength = 10
 
    'para permitir que apenas números sejam digitados
    If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
        KeyAscii = 0
    End If


 
End Sub

Codigo_Data.JPG

Tela_Excel.JPG

Teste2.xlsm

Teste2.xlsm

Link para o comentário
Compartilhar em outros sites

Em 29/12/2015 às 16:33, Alpheratz disse:

Tem formatar a data, dessa forma

 


ActiveCell.Value = Format(TextBox1.Value, "MM/DD/YYYY")

 

Alpheratz,

 

Eu acrescento essa parte em meu codigo ?

 

Ficaria da forma abaixo :

 

 

 

 

 

Private Sub TextBox1_Change()     'Formata : dd/mm/aaaa

 

ActiveCell.Value = Format(TextBox1.Value, "MM/DD/YYYY")


   

 If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then
        TextBox1.Text = TextBox1.Text & "/"
        SendKeys "{End}", True
    End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Limita a Qde de caracteres
   TextBox1.MaxLength = 10
 
    'para permitir que apenas números sejam digitados
    If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
        KeyAscii = 0
    End If
 
End Sub

 

Link para o comentário
Compartilhar em outros sites

É no código do CommandButton1_Click, logo depois do loop, ficando assim:

 

'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = Format(TextBox1.Value, "MM/DD/YYYY")
ActiveCell.Offset(0, 1).Value = TextBox1.Value

'Limpar as caixas de texto
TextBox1.Value = Empty

 

 

Etc.

 

 

 

Você também pode tentar usar a instrução cdate

 

ActiveCell.Value = CDate(TextBox1.Value)

 

Acho que é até melhor usar essa forma, se der certo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...