Descom_q
Messages postés16Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention13 juillet 2006
-
28 avril 2006 à 15:48
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 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
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 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.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 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
Descom_q
Messages postés16Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention13 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