Formuler avec des heures

[Résolu/Fermé]
Signaler
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016
-
Messages postés
17551
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 septembre 2021
-
Bonjour à tous,

Avant d'exposer mon problème, je tiens à remercier toute la communauté grâce à qui j'ai beaucoup progressé dans la compréhension des fonctions.

Reste que j'ai un souci.
Pour avoir un résultat logique j'utilise la formule suivante:
=SI(MAINTENANT()<A1;A1;MAINTENANT())
"A1" Pour un Horaire Fixe noté 18:00 par exemple.
Le problème est que EXCEL refuse de donné le résultat logique lorsque A1< que MAINTENANT().
J'ai relevé que A1 en format nombre apparait: 0.75 quand "MAINTENANT()" fait apparaitre un nombre qui évolue - forcément - comme par exemple 42520.77 je pense que le problème se situe à ce niveau, mais je ne connais pas la bonne méthode pour convertir A1 ( J'ai lu ici et là qu'il fallait * 24 ou /1:00 etc sans succès)

Merci pour votre aide.

3 réponses

Messages postés
17551
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 septembre 2021
4 742
Bonsoir,

A mon sens il y a plusieurs problèmes, la syntaxe MAINTENANT() donne la date et l'heure ce qui fait que dès la syntaxe MAINTENANT() saisie le résultat est déjà dépassé
quand à 0.75 correspond à une valeur décimale qui doit être traduite en heure ce qui correspond à 00:45:00
0.75/24=0,03125 formaté en heure = 00:45:00

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Bonsoir Mike,

Bien que je ne peux l'affirmer avec certitude, je ne pense pas que la syntaxe MAINTENANT() pose un problème puisque lorsque MAINTENANT()> que A1, ça marche puisque 42520.77 et suivants sont> que 0.75.
Par contre 0.75 est l'équivalent de 18:00 sur mon ordi. pas 00:45:00 que faire?

A te lire
Messages postés
3302
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
25 septembre 2021
467
Bonjour,

A1 est en heure, qui est une fraction de jour, qui pour excel vaut 1

la date 42520.77 donne jj:mm:aaaa, mais aussi hh:mm:ss

Et c'est justement la partie decimale pour les heures

donc quand maintenant() te donne 0,75 (3/4 de 24 =>18 h) la partie decimale de 42520.77 soit 0.77, te donne 18:28:48 (en format heure)

et pour cela tu utilises la fonction tronque(),

Crdmt
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Bonsoir DjiDji,

Merci pour l'info, je teste. et je reviens à toi.
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

J'ai essayé, Ca ne marche pas,

Concrètement en A1 j'ai 20:00:00 - En A2 j'ai =MAINTENANT() et en A3 j'ai la formule: =SI(A2()<A1;A1;A2()) que et comment dois-je modifier pour que ça fonctionne.
Messages postés
17551
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 septembre 2021
4 742
Re,
d'après ce que je comprends, essaye comme cela

=SI((HEURE(A2)&":"&MINUTE(A2))*1<A1;A1;A2)

et formate la cellule en heure voir s'il s'agit bien du résultat escompter

en plus simple tu peux écrire
=SI(A2-ENT(A2)<A1;A1;A2)
et formater la cellule en heure

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

Merci Mike,


Alors ça marche quand A2< A1; mais quand A2>A1 la cellule affiche #REF!
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016
>
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

OK Mike ça marche!

En fait j'ai modifié ta formule comme ceci:
=SI((HEURE(A2)&":"&MINUTE(A2))*1<A1;A1;(HEURE(A2)&":"&MINUTE(A2)))

Merci pour ton aide précieuse, tu m'a fait gagner un temps fou.
Messages postés
17551
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 septembre 2021
4 742 >
Messages postés
92
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
13 juin 2016

La deuxième formule est plus simple et te donne le même résultat
=SI(A2-ENT(A2)<A1;A1;A2)
et formater la cellule en heure
Messages postés
17551
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 septembre 2021
4 742
Re,

reprends mes deux formules, initialement j'avais laissé trainer tes doubles parenthèses après A2()), que j'ai retiré dès que je m'en suis aperçu