locked
Problemas com datas em VBA e EXCEL

    Question

  • Criei uma macro simples para ler um arquivo .csv e criar uma planilha com colunas extraídas das linhas do arquivo .csv. A macro funciona corretamente.

    O arquivo .csv original contem, entre outros dados, datas no formato "dd/mm/aaaa". Quando a macro lê o arquivo .csv e grava as células na planilha Excel, sem que seja feita qualquer modificação nos dados, está ocorrendo o seguinte:

    a) datas 01 a 12/mm/aaaa são gravadas na planilha Excel, erroneamente, como mm/dd/aaaa. O formato dessas células aparece como DATA. Ou seja, o Excel está interpretando dias de 01 a 12 como se fossem meses e alterando o formato da célula.

    b) datas 13 a 31/mm/aaaa são gravadas corretamente na planilha Excel como dd/mm/aaaa. O formato dessas células aparece como GERAL.

    Já experimentei especificar na macro o formato geral em cada célula de data, mas não surtiu efeito.

    Alguém poderia me ajudar com essa loucura do Excel?

    Obrigado



    Wednesday, August 29, 2007 7:51 PM

Answers

  • Resolvi o problema utilizando a instrução:

    Nova_data=Format(data_lida,"mm/dd/yyyy")

    Detalhe: O Excel que uso é o 2003, versão BR.

    Primeiro tentei o formato dd/mm/yyyy. Continuou o mesmo problema relatado no post acima.

    Depois tentei o formato mm/dd/yyyy e, para minha surpresa, funcionou. As datas são exibidas como dd/mm/aaaa.

    Mais uma loucura do Excel.

    Obrigado.
    Thursday, August 30, 2007 10:31 PM

All replies

  • Resolvi o problema utilizando a instrução:

    Nova_data=Format(data_lida,"mm/dd/yyyy")

    Detalhe: O Excel que uso é o 2003, versão BR.

    Primeiro tentei o formato dd/mm/yyyy. Continuou o mesmo problema relatado no post acima.

    Depois tentei o formato mm/dd/yyyy e, para minha surpresa, funcionou. As datas são exibidas como dd/mm/aaaa.

    Mais uma loucura do Excel.

    Obrigado.
    Thursday, August 30, 2007 10:31 PM
  • Cara eu estava com o mesmo problema e seu post me ajudou muito, valeu mesmo! Abraço!

     

    Tuesday, November 06, 2007 6:01 PM
  • OI caro amigo, tenho a solução para teu problema, é muito simples.

     

    vou dar um exemplo:

     

    Tenho um userform com uma textbox onde vou inserir a data, certo?

    o que eu quero fazer é o seguinte, quando digitar a data na textbox ela vai ser jogada na célula A1 da Plan1.

     

    Criei um botão para fazer isso, e chamei esse botão de buton_salvar.

     

    veja só o código:

     

    Private Sub buton_salvar_Click()

    Worksheets("plan1").Range("A1") = DateValue(textbox.Value)

    End Sub

     

    Prontinho....tenho certeza que vai dá certo, boa sorte!!!!

    Assim esse problema não vai mais acontecer...

    • Proposed as answer by Franklin.fm Wednesday, November 14, 2012 12:50 PM
    Sunday, November 30, 2008 12:03 PM
  • Realmente, usando a função DateValue(), como o Wallysonn mostrou, o VALOR da data é passado corretamente.

    Se você usar somente a formatação mm/dd/yy, o valor do dia (pelo menos até o dia 12) é passado, mesmo assim, como um valor de mês. É só olhar na Barra de fórmulas do excel que ele vai mostrar que o valor da célula está errado.

    Bom, eu testei e só com a DateValue() é que deu certo...

    Até mais...

    Wednesday, August 05, 2009 1:49 PM
  • O DateValue() funcionou pra mim...

    Wallysonn, obrigadio!

    Wednesday, November 14, 2012 12:50 PM
  • Cara, e não é que era isso mesmo. Muito obrigado, problema resolvido.

    vlw.


    Ricardo Nunes!!!

    Wednesday, August 14, 2013 1:22 PM
  • sim, pois o problema estava na virada de mês para o formato mm/dd/aaaa no "dia" 12 para 13. Este formato é o americano, padrão do Excel, mesmo sendo em português.

    O novo formato de data, deve, provavelmente estar aparecendo com um asterisco na janela Formatar Células.

    ;)

     
    Wednesday, January 15, 2014 6:41 PM