Changer une heure sous la forme hh,mm (format nombre) en hh:mm (format heure)

Guigui

XLDnaute Occasionnel
Bonjour le forum,

Voici mon problème :

Mon planning de travaille contient mes horaires sous une forme nombre par exemple
4,45 pour 04:45
12,00 pour 12:00
0,30 pour 00:30 ...
Je cherche un moyen en vba pour transformer tous mes horaires dans ma grille en format heure ...

j'ai commencé un bout de code dans le style
if len(cell) = 4 then
HOR = "0" & left(cell,1) & ":" & right(cell, 2)
...
if len(cell) = 5 then
HOR = left(cell,2) & ":" & right(cell, 2)
...

mais je m'en sort pas étant donné que les 0 avant ou après la virgule ne sont due qu'au format nombre


Je vous joint un petit bout de fichier.

Merci par avance.
Slts
Guillaume
 

Pièces jointes

  • planning.xls
    17.5 KB · Affichages: 78
  • planning.xls
    17.5 KB · Affichages: 93
  • planning.xls
    17.5 KB · Affichages: 84

Dranreb

XLDnaute Barbatruc
Re : Changer une heure sous la forme hh,mm (format nombre) en hh:mm (format heure)

Bonsoir.
Essayez
VB:
Hor = (Int(Cell.Value) + (Cell.value -Int(Cell.value)) * 5 / 3) / 24
ou bien :
VB:
Hor = TimeSerial(Int(Cell.Value), (Cell.Value - Int(Cell.Value)) * 100, 0)
Cordialement.

Bonsoir Victor21.
 
Dernière édition:

Guigui

XLDnaute Occasionnel
Re : Changer une heure sous la forme hh,mm (format nombre) en hh:mm (format heure)

bonsoir,

Un grand merci à vous deux, c'est parfait !

Dranreb, peux tu m'expliquer pourquoi multiplier par 5, diviser par 3 dans ton code ??
Quel est le principe de vos codes ? (traduction)

Slts
 

Victor21

XLDnaute Barbatruc
Re : Changer une heure sous la forme hh,mm (format nombre) en hh:mm (format heure)

Re,

Multiplier par 5 et diviser par 3 (ou multiplier par 10 et diviser par 6; ou multiplier par 100 et diviser par 60) permet de passer du système sexagésimal (base 60) au système décimal (base 100).
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Changer une heure sous la forme hh,mm (format nombre) en hh:mm (format heure)

Re,

Pour compléter les réponses déja donnée
mais je m'en sort pas étant donné que les 0 avant ou après la virgule ne sont due qu'au format nombre
Quelque soit le format d'affichage d'une heure, la partie entière correspond à des journées, et la partie décimale à des heures, minutes, secondes.
4:45 au format standard affiche 0.197916666666667, soit 0.197916666666667° de jour.
;)
 

Discussions similaires

G
Réponses
2
Affichages
2 K
G

Statistiques des forums

Discussions
312 226
Messages
2 086 414
Membres
103 204
dernier inscrit
alaa20dine01