locked
Problemas com datas em VBA e EXCEL RRS feed

  • Pergunta

  • 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



    quarta-feira, 29 de agosto de 2007 19:51

Respostas

  • 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.
    quinta-feira, 30 de agosto de 2007 22:31

Todas as Respostas

  • 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.
    quinta-feira, 30 de agosto de 2007 22:31
  • Cara eu estava com o mesmo problema e seu post me ajudou muito, valeu mesmo! Abraço!

     

    terça-feira, 6 de novembro de 2007 18:01
  • 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...

    • Sugerido como Resposta Franklin.fm quarta-feira, 14 de novembro de 2012 12:50
    domingo, 30 de novembro de 2008 12:03
  • 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...

    quarta-feira, 5 de agosto de 2009 13:49
  • O DateValue() funcionou pra mim...

    Wallysonn, obrigadio!

    quarta-feira, 14 de novembro de 2012 12:50
  • Cara, e não é que era isso mesmo. Muito obrigado, problema resolvido.

    vlw.


    Ricardo Nunes!!!

    quarta-feira, 14 de agosto de 2013 13:22
  • 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.

    ;)

     
    quarta-feira, 15 de janeiro de 2014 18:41