Donnée heure typée (00:00) de excel reçu sous VB 2005 (0,0000000 etc...)

spiranen Messages postés 4 Date d'inscription vendredi 30 juin 2006 Statut Membre Dernière intervention 14 mars 2009 - 13 mars 2009 à 15:28
spiranen Messages postés 4 Date d'inscription vendredi 30 juin 2006 Statut Membre Dernière intervention 14 mars 2009 - 14 mars 2009 à 08:22
Bonjour

J'ai un souci dont je n'arrive pas à trouver la solution et en réfléchissant (j'avoue que je suis un débutant en programmation) et sur le Net (j'en ai fait des fouilles et je continue...)

Mon souci d'apprenti programmeur du dimanche, est que je voudrais récupérer une donnée dans une feuille Excel avec VB 2005, et que je n'y arrive pas.
Cette donnée est dans une de cellule formatée en heure de cette façon : 14:30
C'est  exactement ce que je voudrais récupérer, mais en fait de récupération, à chaque fois, c'est un nombre décimal genre (0.567812345 etc...) qui m'arrive.
 Je reconnais que je bloque complètement.
Ma variable de récupération sous VB 2005 est typée (As DateTime) et doit me servir pour faire un calcul de temps avec une autre donnée elle aussi typéede la même manière.
Y aurait-il quelqu'un de connaisseur en la matière pour me sortir de mon impasse. Merci par avance. 

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 mars 2009 à 20:25
Les dates sous Excel (et les produits Office en général) sont des dates dites OLE Automation. Ces dates-là sont représentées par un nombre à virgule flottante double précision ( Type Double en VB), un décimal pour faire simple, qui représente le nombre de jours de décalage par rapport à la date de base. La date de base étant le 30/12/1899 à 00h00
La partie entière représentant le nombre de jour, et la partie décimale, le nombre d'heures, minutes seconde et millisecondes.

Une heure n'a pas de réprésentation en soit. Quand tu indique une heure en tant que telle, par exemple 14h30, en fait tu indique le 30/12/1899 à 14h30. Ainsi l'heure de 14h30 correspond à 0.60416666666666663

Ton ton conde, il te faut donc convertir l'heure récupérée en heure de type VB :

TaDateHeure = System.DateTime.FromOADate(TaValeurExcel)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
spiranen Messages postés 4 Date d'inscription vendredi 30 juin 2006 Statut Membre Dernière intervention 14 mars 2009
14 mars 2009 à 08:22
Me voilà grâce à ta commande (TaDateHeure = System.DateTime.FromOADate(TaValeurExcel)) sorti de cette impasse toute bête. De plus je me suis instruit...   C'est super.
Merci c'est sympa d'avoir répondu. Bonne journée
0
Rejoignez-nous