Formuler avec des heures

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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.
    1. 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
  2. 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
    1. Bonsoir DjiDji,

      Merci pour l'info, je teste. et je reviens à toi.
    2. 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.
  3. 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.
    1. Merci Mike,

      Alors ça marche quand A2< A1; mais quand A2>A1 la cellule affiche #REF!
    2. 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
    3. @YOUPI!OUAI!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.
    4. @YOUPI!OUAI!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