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
A voir également:

8 réponses

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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

A+
0