Reprendre une heure dans un tableau excel

Résolu
Descom_q Messages postés 16 Date d'inscription vendredi 7 avril 2006 Statut Membre Dernière intervention 13 juillet 2006 - 28 avril 2006 à 15:48
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 - 2 mai 2006 à 13:35
Je voudrai reprendre une heure dans uen feuille excel la comparer avec une autre. je fais comme ça:
OleWorkSheet.cells[1,1].value:=TimeToStr(DateTimePicker1.Time);
pour l'inscrire et comme ça pour la comparer:
Heure1:=StrToFloat(OleWorkSheet.cells[PtLigne,PtColone+1].value);
Heure2:=StrToFloat(OleWorkSheet.cells[PtLigne+1,PtColone+1].value);
If Heure1 > Heure2 Then...
ça fonctionne jusqu'au if mais là il me dit que OleString est pas compatible avec Double
Je sais qu'il y a une subtilité mais je sais plus laquel
P.S.:ensuit j'aimerai l'afficher dans une edit mais ça affiche un truc du style 0.3426354...en fin un double quoi
en espèrant qu'on puisse me répondre(sûrement)merci à tous à+.peace

4 réponses

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
2 mai 2006 à 13:35
Ton deuxième ShowMessage ne marche pas, c'est normal puisque tu reprends la valeur stockée par Excel (qui est une valeur du type 0.55678).
Il faut convertir la valeur:
ShowMessage(TimeToStr(OleWorkSheet.Cells[PtLigne,PtColonne].Value));

Dans une cellule Excel : tape  12:20:35
Excel va afficher la même chose parce qu'il a reconnu une heure.
Dans menu format cellule nombre, change en standard.
Et vois l'affichage.

A +
Thierry
3
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
29 avril 2006 à 09:49
A mon avis c'est un problème de transcryption. Ta décalré Heure1 et Heure2 comme étant de quel type? Verifie de ce coté !
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
29 avril 2006 à 10:04
Pourquoi fais-tu la conversion en Float ?
Heure1, Heure2 : TDateTime;

Heure1:= StrToDateTime(...); 
Heure2:= StrToDateTime(...);
if Heure1 > Heure2 then
    Edit1.Text:= DateTimeToStr(Heure1);
 // ou Edit1.Text:= TimeToStr(Heure1)  pour n'afficher que le time

Fais gaffe aux séparateurs de date :
   DateSeparator = '/' par défaut
   Time separator = ':' par défaut

A +
0
Descom_q Messages postés 16 Date d'inscription vendredi 7 avril 2006 Statut Membre Dernière intervention 13 juillet 2006
2 mai 2006 à 08:47
Non mais on s'est mal comprit le problème c'est que j'arrive pas à lire la même chose que ce que je met dans la cellule:
Var
Heure:TDateTime;
begin
Heure:=DateTimePicker.Time;
OleWorkSheet.cells[PtLigne,PtColonne].value:=TimeToStr(Heure);
ShowMessage(TimeToStr(Heure));//m'affiche l'heure du datetimepicker correct
ShowMessage(OleWorkSheet.cells[PtLigne,PtColonne].value);//m'affiche un truc genre 0.311203 c pour ça que j'essayai avec un float mais j'arrive même pas à comparer. ça doit être un truc du coté de la convertion
0
Rejoignez-nous