Página 1 de 1

Excel Invertendo Data

Enviado: Sex Ago 10, 2018 10:44 am
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!

Re: Excel Invertendo Data

Enviado: Sex Ago 10, 2018 2:43 pm
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