Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Excel Invertendo Data

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
headway123
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Seg Jul 16, 2018 6:17 pm

Excel Invertendo Data

Mensagem por headway123 »

Olá a todos,

Por gentileza, estou com o seguinte problema e não consigo encontrar a solução.

Ao preencher com a data no UserForm, o Excel inverte o DIA, pelo MÊS, em qualquer data anterior ao dia 12.

Já mudei a formatação de data do Excel para Portugues, Ingles, e também não deu certo.

Segue os dois códigos que utilizo.

If Len(TxtProximoContato.Text) = 2 Then
TxtProximoContato = TxtProximoContato + "/"
End If

If Len(TxtProximoContato.Text) = 5 Then
TxtProximoContato = TxtProximoContato + "/"
End If



TxtProximoContato.MaxLength = 11 '10/10/2014
Select Case KeyAscii
Case 8 'Aceita o BACK SPACE
Case 13: SendKeys "{TAB}" 'Emula o TAB
Case 48 To 57
If TxtProximoContato.SelStart = 2 Then TxtProximoContato.SelText = "/"
If TxtProximoContato.SelStart = 5 Then TxtProximoContato.SelText = "/"
Case Else: KeyAscii = 0 'Ignora os outros caracteres
End Select

Tenho outro TextBox 'Date' que registra a data atual para cadastro, que as vezes também ocorre essa inversão.

Tentei de várias formas e não consegui resolver.

Por favor, se alguém souber resolver isso eu agradeço muito!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Excel Invertendo Data

Mensagem por webmaster »

O VBA vai sempre interpretar as datas no formato MM/DD/YYYY, onde M = Mês, D = Dia e Y = ano.

Portanto, sempre que a data for atribuída ou vier de um objeto data, ela virá nesse formato ou estará esperando esse formato.

O que vai ajudar é a função DateValue. Mesmo que você passe uma data no formato DD/MM/YYYY, ela vai interpretá-la corretamente e sem erros.

Recapitulando:

- Se a data vier como string de algum lugar (textbox por exemplo), use DateValue para convertê-la para o formato correto
- Se forma apresentar uma data que venha de um objetio data, use a função Format.

Att


Responder