Ir para conteúdo
Fórum Script Brasil
  • 0

Excel invertendo DATA


Julian Rocha

Pergunta

Olá a todos,

Por gentileza, estou com um problema e gostaria de pedir a ajuda de voces.

Estou com o seguinte problema em um formulário do VBA

Ao preencher com a data, 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.




Desde já agradeço pela atenção!

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
2 horas atrás, Erik Wesley disse:

Use o:


DateValue(Variavel)

ele ira resolver seus problemas de data invertida.

Exemplo:


Dim DataAtual as String
DataAtual = "10/08/2018"
ActiveCell.Value = DateValue(DataAtual)

 

Já tentei este código e não resolveu

Eu insiro ele no Botão Salvar ou na TextBox?

Eu tentei nos dois, e a data continua invertendo 😕

Link para o comentário
Compartilhar em outros sites

  • 0
26 minutos atrás, Erik Wesley disse:

Manda a parte do seu código que retira a data do local e cola no destino.

Código da TextBox

 

Private Sub TxtProximoContato_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

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

End Sub

 

No botão salvar eu digitei um Call para chamar o comando no módulo.

 

Sub cad_membros3()
    Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("PROSPECTS")
            With ws
             linha = 2
                Do Until Sheets("PROSPECTS").Cells(linha, 1) = ""
                   linha = linha + 1
                Loop
 
                    Sheets("PROSPECTS").Cells(linha, "Y") = Frm_Prosp.TxtProximoContato.Value
                    Sheets("PROSPECTS").Cells(linha, "Z") = Frm_Prosp.TxtObs.Text
                    Sheets("PROSPECTS").Cells(linha, "AA") = Frm_Prosp.TxtVendedor.Text
                    Sheets("PROSPECTS").Cells(linha, "AB") = Frm_Prosp.TxtDataAut.Text
                    Sheets("PROSPECTS").Cells(linha, "AC") = Frm_Prosp.TxtHoraAut.Text
                
                
                    
                    MsgBox "Membro cadastrado com sucesso!", vbInformation, "SUCESSO"
                    
                    Call gera_codigo_produto3
                    Call limpacampos3
                    Call Atualizar_Registros3

 End With

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0
Em 11/08/2018 at 19:35, Alyson Ronnan Martins disse:

Boa noite Julian Rocha.

Passei por esse problema agora pouco também.
tente invertar a formatação:


Dim nData 
nData = format(now(), "MM/DD/YYYY")

 

Continua invertendo.

A diferença é que no meu caso, o usuário irá digitar a data.

e não puxar a data do dia de hoje.

Segue como ficou o meu código:

 

Dim TxtProximoContato
 
TxtProximoContato = Format(TxtProximoContato, "MM/DD/YYYY")

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 11/08/2018 at 19:35, Alyson Ronnan Martins disse:

Boa noite Julian Rocha.

Passei por esse problema agora pouco também.
tente invertar a formatação:


Dim nData 
nData = format(now(), "MM/DD/YYYY")

 

Consegui resolver o problema,

Basicamente, utilizei este código que você tinha postado,

Porém tive de adaptar ao meu código.

De qualquer forma, obrigado!

Este tópico pode ser fechado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...