Conversion 100eme d'heure

  • Initiateur de la discussion JM
  • Date de début
J

JM

Guest
Salut,

Sacré dilemne le calcul des heures.

Existe til un moyen pour convertir en auto des la saisie des heures converties en 100eme.

ex: 17:30 = 17.50

Merci de vos reponses

Cordialement
 
J

john

Guest
Salut,

Voilà, je pense avoir fais ce que tu cherches,j'ai fais une fonction qui transforme les heures en heures décimales.

J'ai tester, ça à l'air correct, mais bon on ne sait jamais.

Bonne journée.

John
 

Pièces jointes

  • heuredecimal.zip
    6.4 KB · Affichages: 618
L

LaurentTBT

Guest
Salut à vous.

Pour excel, les heures fonctionnent ainsi: 1=24h.
Par une simple règle de trois, il suffit de mettre en case B1: =A1*24, en mettant un format de nombre standart en B1, et le format hh:mm en A1.

Maintenant, si tu ne veux pas passer par une colonne supplémentaire, et modifier la saisie 13:30 en A1 pour que soit inscrit 13,5 toujours en A1, alors il va falloir sans doute passer par une macro.
 
L

LaurentTBT

Guest
Re-bonjour.
JM, nos 2 posts de 11h se sont croisés. Donc, comme je le pressentais, il faut faire la modif "en temps réel" sur la cellule de saisie. Donc voici une macro toute simple à insérer dans le module de la feuille correspondante.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.NumberFormat = "h:mm" Then
Target.NumberFormat = "General"
Target = Target * 24
End If
End Sub

Attention: il y a quelques défauts:
J'ai remarqué que si on saisi par exemple 11:30, alors le format de la cellule est forcé à h:mm, et c'est ce que j'utilise.
Mais si on ajoute les secondes (11:30:15) alors cela ne fonctionne plus.
De même si le format de ta cellule était déjà un format heure spécial (par exemple h:mm AM/PM. Je n'ai pas mis le test sur tous les cas.
L'idéal est de définir a priori le format de cellule comme standard (de toute façon, il le redevient après la macro). Mais tu n'est pas à l'abri que l'utilisateur saisisse "11:30 PM".

Si l'utilisateur saisit 11,50, la macro ne considère pas qu'il a tapé 11h50, mais bien 11,50 heures

D'autre part, dans mon code, toutes les cellules de la feuille seront concernées, sinon, il faut rajouter un test sur le Target si tu veux te limiter à certaines cellules. Par exemple, rajoutes au début
If Not Application.Intersect(Target, Range("B2:B10"))Is Nothing ThenSi tu veux limiter aux seules cellules B2 à B10.

Bref, c'est à perfectionner, et j'ai des doutes sur la réelle efficacité de la chose. Il faut être sûr que l'utilisateur saisira en format hh:mm
 

Discussions similaires

Réponses
9
Affichages
742
Réponses
3
Affichages
436
Réponses
14
Affichages
894

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2