Signaler

Manipuler un format hh:mm:ss.000

Posez votre question Guinpin54 13Messages postés mercredi 16 septembre 2015Date d'inscription 23 septembre 2016 Dernière intervention - Dernière réponse le 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
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Vos valeurs de temps sont stockees ou, dans des cellules ou ?????
Guinpin54 13Messages postés mercredi 16 septembre 2015Date d'inscription 23 septembre 2016 Dernière intervention - 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.
Répondre
f894009 10235Messages postés dimanche 25 novembre 2007Date d'inscription 27 septembre 2016 Dernière intervention - 23 sept. 2016 à 13:15
Re,

Regardez la proposition de Thev (Salut, ca flotte ??), qui marche tres bien.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Bonjour,

et en essayant :
Range("E" & l).Value = Temps*24*3600
Guinpin54 13Messages postés mercredi 16 septembre 2015Date d'inscription 23 septembre 2016 Dernière intervention - 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!
Répondre
f894009 10235Messages postés dimanche 25 novembre 2007Date d'inscription 27 septembre 2016 Dernière intervention - 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
Répondre
Patrice33740 4996Messages postés dimanche 13 juin 2010Date d'inscription 27 septembre 2016 Dernière intervention Guinpin54 - 23 sept. 2016 à 13:48
Bonjour,

La solution c'est Option Explicit au début du module
Répondre
f894009 10235Messages postés dimanche 25 novembre 2007Date d'inscription 27 septembre 2016 Dernière intervention - 23 sept. 2016 à 13:50
Bonjour,

Vous pensez a ceci:

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

Mais ca marche sur son PC
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !