Problème de format de cellule

Jean-Yves -  
 Jean-Yves -
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. hervelot Messages postés 535 Statut Membre 123
     
    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
  2. Jean-Yves
     
    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
    0
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  4. Jean-Yves
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LENA
     
    Bonjour,
    TU SERAI PAS UN ALSACIEN PAR HASARD?
    0
  7. Jean-Yves
     
    heu non qu'est-ce qui te fait dire ça ... je suis plutôt à 600 kms au sud de l'Alsace !
    0
  8. LENA
     
    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
    0