Manipuler un format hh:mm:ss.000

Guinpin54 Messages postés 22 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Vos valeurs de temps sont stockees ou, dans des cellules ou ?????
    0
    1. Guinpin54 Messages postés 22 Statut Membre
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Guinpin54 Messages postés 22 Statut Membre
         
        Re,

        Regardez la proposition de Thev (Salut, ca flotte ??), qui marche tres bien.
        0
  2. thev Messages postés 2008 Date d'inscription   Statut Membre Dernière intervention   722
     
    Bonjour,

    et en essayant :
    Range("E" & l).Value = Temps*24*3600
    0
    1. Guinpin54 Messages postés 22 Statut Membre
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Guinpin54 Messages postés 22 Statut Membre
         
        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
      2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784 > Guinpin54 Messages postés 22 Statut Membre
         
        Bonjour,

        La solution c'est Option Explicit au début du module
        0
      3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        Vous pensez a ceci:

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

        Mais ca marche sur son PC
        0