CONVERTER HORA DE TEXTO EM HORA COMPLETA

CHDSSANTOS 24/11/2014 18:30:20
#442738
Pessoal, boa tarde!
Estou tentando importar um arquivo do Excel (xls ou xlsx) para um banco de dados, mas existe um campo de com horas completas (hhh:mm:ss) que esta dando erro.
Quanto tento converter o campo para hora através do CDate ou Format alguns valores estão recebendo uma data negativa.
Um exemplo é uma célula que esta exibindo as horas no formato completo (28:26:23), dentro da célula, fora a formatação, o valor dentro da célula é “01/01/1900 04:26:24” quando formato o campo como numero e uso o CDate recebo a data “31/12/1899 04:26:24”!


Esse é o trecho do código que converte o campo:

Dt = CDate(CDbl(Trim(wb.Range([Ô]D[Ô] & i))))

Alguém já teve algum problema parecido? Conhecem alguma solução?
MARCELO.TREZE 24/11/2014 18:40:01
#442739
Resposta escolhida
não sei como você tentou usar o Format mas tente o seguinte

Dt = Format(Cdate(wb.Range([Ô]D[Ô] & i)),[Ô]mm/dd/yyyy hh:nn:ss[Ô])


CHDSSANTOS 24/11/2014 21:28:25
#442741
Não deu certo...
MARCELO.TREZE 24/11/2014 23:17:53
#442745
então colega o problema esta relacionado ao valor da hora, este problema se da pelo fato de não haver hora maior que 23:59:59, a partir de deste valor, o sistema pega data base da maquina e vai somando estas horas ao dia, exemplo

se você lançar 28:00:00 o sistem a entende que é 24:00:00 + 04:00:00 do dia seguinte o que gera a confusão

como solucionar este problema, e converter o campo para texto
CHDSSANTOS 25/11/2014 07:04:09
#442750
Marcelo, bom dia!

Obrigado pela força!

Sem sucesso
Formatei o campo manualmente e também usei este código para formatar [Ô]ThisWorkbook.Sheets(1).Range([Ô]A1[Ô]).NumberFormat = [Ô]@[Ô] e não deu.
Estranho que na célula o valor transforma-se em 1,16666666666667, mas continua sendo convertido para o ano 1899.
Entendo seu apontamento na questão da forma como a hora é processada no vba, mas na teoria o sistema inicia em 01/01/1900 00:00:00. Assim, indo para 31/12/1899 04:00:00 indica que o resultado foi negativo.

Tentei em duas maquinas diferentes, a de casa e do serviço, e o resultado foi o mesmo.
Você conseguiu realizar este teste?
Tópico encerrado , respostas não são mais permitidas