Manipuler un format hh:mm:ss.000

Fermé
Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016 - 23 sept. 2016 à 11:18
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 23 sept. 2016 à 13:50
Bonjour,

Je rencontre un petit problème en VBA sous excel 2010.
J'ai une base de temps en format hh:mm:ss.000 (ex : 15:11:02.093). J'aimerais récupérer cette données et la mettre en secondes.

J'ai donc une ébauche de code comme suit :

Dim Temps as Date
Range("E" & l).Value = Hour(Temps) * 3600 + Minute(Temps) * 60 + Second(Temps)

Mon problème est alors le suivant : la fonction Second ne semble remonter que des données en seconde justement, mais dans les chiffres après la virgule.
Y-a-t'il une petite astuce pour pouvoir récupérer et manipuler les fractions de secondes?
Merci beaucoup!

Clément

A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 sept. 2016 à 11:52
Bonjour,

Vos valeurs de temps sont stockees ou, dans des cellules ou ?????
0
Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016
23 sept. 2016 à 11:59
Mes valeurs sont stockées dans des cellules.
Je passe donc la valeur de la cellule dans ma variable Temps, pour après la manipuler.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016
23 sept. 2016 à 13:15
Re,

Regardez la proposition de Thev (Salut, ca flotte ??), qui marche tres bien.
0
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
23 sept. 2016 à 11:56
Bonjour,

et en essayant :
Range("E" & l).Value = Temps*24*3600
0
Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016
23 sept. 2016 à 13:30
Ca marche super chez moi! Merci :)

Une seconde question si je peux me permettre:
J'ai testé le même script chez un collègue dans la même version de Excel, et lorsque je défini:

Temps = Range("D" & i).Value

Il me renvoie une incompatibilité de type. J'essaye de skipper cette partie en faisant directement
Range("E" & l).Value = Range("D" & i).Value * 3600 * 24
Qui marche chez moi, mais rebelote... Une petite idée sur le sujet?
Désolé du dérangement!
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016
23 sept. 2016 à 13:45
Re,

J'essaye de skipper Vous faites du bateau ??

Peut-etre un probleme de format

Pouvez-vous mettre le fichier du "collegue" a dispo
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > Guinpin54 Messages postés 13 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 23 septembre 2016
23 sept. 2016 à 13:48
Bonjour,

La solution c'est Option Explicit au début du module
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
Modifié par f894009 le 23/09/2016 à 13:51
Bonjour,

Vous pensez a ceci:

Range("E" & l).Value = Range("D" & i)

Mais ca marche sur son PC
0