Problème de format de cellule

Bonjour tout le monde,

J'ai un petit problème de format sous Excel / VBA :

Dans une colonne, les cellules contiennent l'heure par tranche de demi-heure, exemple : 07:30

Mais quand j'essaye d'accéder à la valeur de la cellule par l'instruction ActiveSheet.Cells(l,c), j'obtiens :

0,604166666666667 au lieu de 14:30 (par exemple)

Est-ce que quelqu'un sait comment faire, ou quelle conversion pour récupérer les caractères contenus dans la cellule

Merci d'avance

8 réponses

  1. Bonjour,

    En effet, VBA a une façon bizarre de stocker les heures.

    Je vais to donner MON explication (d'autre t'en donneront peut-être une autre), mais pour moi j'ai pu ainsi manipuler les heures sans PB

    Toutes les heures compris entre 0 et 0,9999..... correspond aux heures de 00:00 à 23h59
    A partir de 1 il faut compter en jours

    ex :

    si 0,604166666666667 correspond à 14:30
    alors 1,604166666666667 correspond à 1 jours et 14h30

    Pour les calculs il suffit d'ajouter les valeurs, pour l'affichage il faut ultiliser la fonction "Format"

    j'espère avoir en partie repondu à ta question
    1. Merci pour ta réponse,

      Mais pour l'instant c'est pas encore ça. Par exemple :
      00:00 s'écrit 0 là c'est facile mais
      00:01 s'écrit 6,94444444444444 E -04 value récupère la notation scientifique. Alors je ne vois pas comment trouver une règle pour récupérer 00:01 à partir de ça.

      Je crois que je vais faire un tableau pour faire une correspondance car je dois juste traiter demi-heure par demi-heure
      1. Bonjour,

        Il y a une aide en ligne VBA sur Excel qui donne des exemples sur la manipulation des dates.

        Si tu veux garder le format 07:30, il faut faire une conversion en chaine de caractère, par exemple

        .....

        Dim sDate As String

        sDate = Cstr(Worksheets("Sheet1").Range("A1").Value)

        ....

        Je ne sais pas si ça répond à ton problème.

        ;o)

        Polux
        1. J'avais essayé la conversion avec la fonction Cstr ... apparemment ça marche pas

          Bon j'ai peut être trouvé la solution qui était suggérée par hervelot : en multipliant par 24 on récupère l'heure sous une forme plus
          compréhensible :
          ex 14,5 /24 = 0,60416666666666666666666666666667 c'est à dire le chiffre obtenu précédemment dans la cellule avec quelques chiffres significatifs en plus

          Merci en tous cas. bien ce forum
          1. heu non qu'est-ce qui te fait dire ça ... je suis plutôt à 600 kms au sud de l'Alsace !
            1. NON RIEN DE SPECIAL J AI UN POT UN JY QUI AIME DE TROP L INFO ET QUI FAIT QUE CA ET COMME LE MONDE ET PETIT JE ME SUIS DIT POURQUOI PAS LUI.
              DESOLE POUR LA CONFUSION
              A+ LENA