convertir hh:mm en secondes

convertir hh:mm en secondes - VB/VBA/VBS - Programmation

Marsh Posté le 25-06-2004 à 07:57:30    

Salut à tous,  
 
je cherche à transformer du temps en décimal?  
 
j'ai un champ1 saisi sous la forme:  
12:38.87 et je voudrais obtenir> 7588.7 dixièmes  
soit 12*600 + 38.87*10  
 
mais je ne sais pas comment faire.  
 
alors merci d'avance pour votre code ou vos propositions.  
 
A+  
Jack

Reply

Marsh Posté le 25-06-2004 à 07:57:30   

Reply

Marsh Posté le 25-06-2004 à 08:29:06    

Code :
  1. Private Function Calc_Dixiemes(strTime As String) As Double
  2. Dim iPos As Integer
  3. Dim dblTemps As Double
  4.     ' Heures
  5.     iPos = InStr(1, strTime, ":", vbTextCompare)
  6.     dblTemps = CLng(Mid(strTime, 1, iPos - 1)) * 600
  7.     strTime = Mid(strTime, iPos + 1, Len(strTime) - iPos)
  8.    
  9.     ' Minutes
  10.     iPos = InStr(1, strTime, ".", vbTextCompare)
  11.     dblTemps = dblTemps + CLng(Mid(strTime, 1, iPos - 1)) * 10
  12.     strTime = Mid(strTime, iPos + 1, Len(strTime) - iPos)
  13.    
  14.     ' Secondes
  15.     dblTemps = dblTemps + CLng(strTime) / 10
  16.    
  17.     Calc_Dixiemes = dblTemps
  18. End Function


Essaie ça. Attention au séparateur décimal. Le pb. aurait été plus simple avec la virgule.  :)  


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 25-06-2004 à 10:23:51    

Merci,  
 
et ça donnerait quoi avec une virgule?
désolé d'être aussi ignare, mais je le plante où ce code???
 
je dois créer un nouveau module?
 
merci de ta patience. :-)

Reply

Marsh Posté le 25-06-2004 à 10:41:57    

La virgule, ça aurait permis de récupérer 38.87 directement, sans décomposer au niveau du point. Mais c'est pas grave.
 
Le code, tu le copies tel quel à la fin de ton module en cours.
Et dans ton module en cours, là où tu récupères la valeur du champ, tu écris qq chose comme
 

Code :
  1. maValeur = Calc_Dixiemes(valeur_du_champ)

Voili voila..


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed