Notifications
Clear all

Formatar data em formulário

10 Posts
4 Usuários
0 Reactions
1,578 Visualizações
(@carloshvb)
Posts: 0
New Member
Topic starter
 

Boa tarde pessoal,

Estou com o seguinte problema:

- Eu tenho um formulário que carrega informações de uma planilha, e uma destas informações é a data em que o rigistro foi lançado, porém, as vezes a formatação de data no formulário aparece de forma incorreta. Ex: O desejado é que o formato de data seja dd/mm/aaaa. Porém, em alguns casos o formato aparece como mm/dd/aaaa, o que confunde os usuários.

Por este motivo, eu gostaria de pedir a ajuda de vocês para saber como faço para formatar este campo para que o formato de data seja sempre dd/mm/aaaa.

Desde já obrigado.

 
Postado : 25/06/2015 11:56 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

carloshvb

Boa Tarde!

Coloque no Evento Exit da caixa de texto onde é entrada a data, o seguinte código:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Text = Format(Range("D3").Value, "dd/mm/yyyy")
End Sub
 
Postado : 25/06/2015 12:41 pm
(@carloshvb)
Posts: 0
New Member
Topic starter
 

Olá Wagner,

Não entendi muito bem, este código seria para quando vou inserir a data no formulário de registro?
Se for este o caso, a data é coletada automaticamente, não existe entrada por usuário.
Outra coisa, os dados na planilha estão formatados corretamente, o problema é quando eu puxo no formulário, só ai que a formatação é perdida, é na hora de puxar os dados que preciso formatar a data no textbox.

Att, Carlos

 
Postado : 26/06/2015 7:27 am
(@issamu)
Posts: 0
New Member
 

Geralmente vejo este problema quando uma célula é alimentada com uma data inserida num textbox...
Sugiro tentar adaptar o seguinte código no momento de input do seu textbox:

TextBox1.Value = Format(CDate(CLng(Excel.Range("A1").Value)), "dd/mm/yyyy")
 
Postado : 26/06/2015 10:22 am
(@carloshvb)
Posts: 0
New Member
Topic starter
 

Bom dia pessoal,

Obrigado pelas respostas, mas descobri que meu problema é um pouco mais embaixo.

As datas estão sendo gravadas corretamente, e quando faço a pesquisa tudo ocorre bem.
Meu problema real ocorre pois após fazer a pesquisa eu tenho que gerar uma planilha temporaria com os dados da pesquisa, é na hora de gerar essa planilha que o problema com as datas ocorre e para todas as datas com o dia menor que 10, o dia e o mês trocam de posição.

Segue o código que gera a planilha temporária:

Private Sub PlanTmp()
    Dim iLin As Integer
    Dim rgCellInicio As Range
    Dim wsRelat As Worksheet
    Dim UltimaLinha As Long
    
    Set wsRelat = ThisWorkbook.Worksheets(NomePlanRelatorio)

    UltimaLinha = wsRelat.UsedRange.Rows.Count
    
    wsRelat.Range("A2:" & "S" & UltimaLinha).ClearContents
    
    With wsRelat
        For I = 1 To lstLista.ListItems.Count
            .Cells(I + 1, 1) = lstLista.ListItems(I).Text
            .Cells(I + 1, 2) = lstLista.ListItems(I).SubItems(1)
            .Cells(I + 1, 3) = lstLista.ListItems(I).SubItems(2)
            .Cells(I + 1, 4) = lstLista.ListItems(I).SubItems(3)
            .Cells(I + 1, 5) = lstLista.ListItems(I).SubItems(4)
            .Cells(I + 1, 6) = lstLista.ListItems(I).SubItems(5)
            .Cells(I + 1, 7) = lstLista.ListItems(I).SubItems(6)
            .Cells(I + 1, 8) = lstLista.ListItems(I).SubItems(7)
            .Cells(I + 1, 9) = lstLista.ListItems(I).SubItems(8)
            .Cells(I + 1, 10) = lstLista.ListItems(I).SubItems(9)
            .Cells(I + 1, 11) = lstLista.ListItems(I).SubItems(10)
            .Cells(I + 1, 12) = lstLista.ListItems(I).SubItems(11)
            .Cells(I + 1, 13) = lstLista.ListItems(I).SubItems(12)
            .Cells(I + 1, 14) = lstLista.ListItems(I).SubItems(13)
            .Cells(I + 1, 15) = lstLista.ListItems(I).SubItems(14)
            .Cells(I + 1, 16) = lstLista.ListItems(I).SubItems(15)
            .Cells(I + 1, 17) = lstLista.ListItems(I).SubItems(16)
            .Cells(I + 1, 18) = lstLista.ListItems(I).SubItems(17)
            .Cells(I + 1, 19) = lstLista.ListItems(I).SubItems(18)
        Next
    End With
End Sub

O codigo que copia a data é este:

 .Cells(I + 1, 6) = lstLista.ListItems(I).SubItems(5)

Neste caso, meu problema ocorre somente quando tenho que usar essa planilha temporária, tem como corrigir isso e fazer a copia das datas ocorrer corretamente.

Obrigado

 
Postado : 30/06/2015 6:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O codigo que copia a data é este:

 .Cells(I + 1, 6) = lstLista.ListItems(I).SubItems(5)

Troque pela linha abaixo e faça os testes :

.Cells(I + 1, 6)  = Format(lstLista.ListItems(I).SubItems(5) , "dd/mm/yyyy"))

[]s

 
Postado : 30/06/2015 8:48 am
(@carloshvb)
Posts: 0
New Member
Topic starter
 

Bom dia pessal,

Mauro, obrigado pela sugestão, mas não deu certo, o novo código só deu erro infelizmente, será que isso pode ser pelo fato de estar copiando de uma listview?

 
Postado : 01/07/2015 5:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia pessal,

Mauro, obrigado pela sugestão, mas não deu certo, o novo código só deu erro infelizmente, será que isso pode ser pelo fato de estar copiando de uma listview?

Desde que os dados contidos em "ListItems(I).SubItems(5)" sejam datas, não tem problemas de estar copiando do ListView :
Tente :

.Cells(I + 1, 6)  = Format(CDate(lstLista.ListItems(I).SubItems(5) , "dd/mm/yyyy")))

[]s

 
Postado : 01/07/2015 7:28 am
(@carloshvb)
Posts: 0
New Member
Topic starter
 

Infelizmente, o código também não funcionou...

 
Postado : 02/07/2015 11:00 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Infelizmente, o código também não funcionou...

Altere para :

.Cells(I + 1, 6)  = Format(CDate(lstLista.ListItems(I).SubItems(5) , "mm/dd/yyyy")))

Se ainda não der certo, o ideal é anexar um modelo reduzido.

 
Postado : 02/07/2015 9:55 pm