Problème de format de cellule
Jean-Yves
-
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
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
-
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 -
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 -
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
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 -