Copier des chiffres en heures

Bonjour,

J'ai un tableau dont les heures réelles ont été saisies en chiffres.
Je dois copier ses chiffres en format heures.
Je m'explique :
En A1 la saisie est 12.3 (pour 12 heures 30) et je dois le mettre sous format 12:30

Avez-vous une solution, la saisie déjà faite est relativement impressionnante.
Merci beaucoup de votre aide

10 réponses

  1. Bonjour à tous,

    Je suis resté sur le post initial : "transformer 12.3 en 13:30".
    =--TEXTE(100*SUBSTITUE(A1;".";sep);"00\:00")

    avec sep un nom contenant
    =INDEX(LIRE.ENV(37);3)

    sep donne le séparateur décimal de l'environnement.

    cordialement
    0
    1. Et s'il y en a vraiment beaucoup (moins de 65000 quand même)
      http://www.cjoint.com/c/FDriyQ1em1Q

      Cdlmnt
      0
      1. Bonjour à tous

        S'il y a beaucoup de valeurs à traiter, peut être avec une petite macro
        http://www.cjoint.com/c/FDpqno7ILXq

        Cdlmnt
        0
        1. Contributeur
          Bonjour,

          Il y a déjà une erreur dans l'énoncé de la question.

          On ne peut obtenir 12.3 h en 12:30 ou 12h30, il y a une convertion à faire, comme l'a souligné Vaucluse dans sa réponse 6, 12.3 (format décimales) est égal à 12:18 ou 12h18 (format heures).

          De même que 12h15 ou 12:15 (heures) est égal à 12.25 (décimales) et non à 12.15.

          12h45 ou 12:45 (heures) est égal à 12.75 (décimales) et non à 12.45.

          Cette mise en place du tableau est déjà faussée dès le départ.

          Il faudra entrer ce type de calcul pour la convertion :

          -->http://python.espe-bretagne.fr/opvannes/gpcar/00/co/04/co/04-info-3.html<--

          Cdlt et bon w-e ;-)

          --> PAS DE PROBLÈMES, QUE...DES SOLUTIONS <--
          Tout dépend du degré de flexibilité de la queue d'une vache entre les barreaux d'une chaise par temps de brouillard ;-)
          0
          1. Contributeur
            Bonjour stargate,

            Je crois qu'il en est conscient mais la saisie déjà faite est relativement impressionnante.
            0
          2. yes c'est cela mon problème
            0
          3. J'ai eu l'aide d'un collègue et il a trouvé et ça marche
            =(ENT(A1)+((A1-ENT((A1))*100/60))/24

            Merci énoooooooorrmément d'avoir planché
            0
        2. Contributeur
          Bonjour,

          si ton séparateur décimal est la , alors :
          =--SUBSTITUE(A2;",";":")
          format de cellule en heure
          ou [h]:mm
          Si c'est le . les 2 solutions fonctionnent.
          eric

          En essayant continuellement, on finit par réussir. 
          Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
          En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
          0
          1. Contributeur
            Salut Eric... ça va?

            comme déjà dit un peu lus haut, et sauf erreur de ma part avec:

            =SUBSTITUE(A1;".";",")*1

            ou
            =--SUBSTITUE(A2;",";":")

            les deux options pour 12.3 envoie 12:03 en format heure. La demande était de transformer, selon l'exemple, 12.3 en 12:30,
            ........mais effectivement, vu les doutes de tous,cela demande confirmation!

            Bien cordialement
            0
          2. Contributeur
            non non, aucun doute, tu as raison :-)
            Je suis passé à coté magistralement...

            Alors pour simplifier :
            =--SUBSTITUE(TEXTE(A2;"0.00");".";":")
            ou
            =--SUBSTITUE(TEXTE(A2;"0.00");",";":")

            selon le séparateur décimal utilisé, et mettre le format heure désiré.
            0
          3. Contributeur
            euh???... je crois que ça renvoie toujours 12:03 au lieu de 12:30

            en fait, ça ne change rien vu que TEXTE(A2;"0.00") si A2 est 12.3 renvoie ... 12.3!

            à moins que je ne fasse pas ce qu'il faut!

            en fait je ne vois pas de solution autre que de considérer la partie décimale comme un nombre de dizaine si il n'y a qu'un chiffre et d'unités s'il y en a deux.
            crdlmnt
            0
          4. Contributeur
            Alors je ne sais pas ce qui ce passe, mais:

            mais quand j'ouvre fichier, j'ai bien en B2 12:30, mais en partant en A2 de 12,3 affiché au lieu de 12.3

            si je corrige A2 et A3 en 12.3 et 12.03, la, formule me renvoie toujours 12:03 en B2 et B3

            et si avant de modifier quoique ce soit, je sélectionne B2, je positionne le curseur et touche enter, B2 et B3 e renvoient 00:12
            avec impossibilité d'utiliser le retour en arrière

            même résultat si je réécris la formule 00:12.. en B2 pour 12,3 en A2.. et encore à condition que je garde bien SUBSTITUE avec le ".";":"), si je remplace le,point par une virgule avec cette formule j'obtiens #VALEUR et pour compléter le tableau

            il doit y avoir dans ton Excel quelque chose qui n'existe pas dans le mien.

            vois ici ce que j'ai testé, dans les deux tableaux, la dernière colonne et un collage "valeur" pour que tu puisses voir si les résultats changent chez toi.

            https://www.cjoint.com/c/FDpmjMLXzyX

            crdlmnt
            0
        3. Contributeur
          Bonjour

          SUBSTITUE ne transforme pas 12.3 en 12:30 comme demandé, après division par 24 pour passer en horaire,mais en 12:18

          reste à savoir ce que vous voulez exactement entre12.3 et 12.30

          ci joint modèle de ma proposition

          https://www.cjoint.com/c/FDpeURTJUnX

          les cellules résultats sont formatées en [hh]:mm

          crdlmnt

          La qualité de la réponse dépend surtout de la clarté de la question, merci!
          0
          1. Contributeur
            Qu'est-ce qui ne marche pas ?
            Pour 12.3 l'affichage en colonne B est 12,3 au lieu de 12,30 ?
            Tu n'as pas pensé à mettre ta colonne B au format nombre à 2 décimales ? https://www.cjoint.com/c/FDpbGSgXGOk
            0
            1. Raymond, Vaucluse,

              Ca ne marche pas
              0
              1. Contributeur
                Bonsoir
                peut être avec cette formule qui fonctionne en considérant que si le nombre après le point n'a qu'un seul chiffre, il s'agit de dizaine de minute

                par exemple 12.3 ou 12.30 doit devenir 12:30
                =GAUCHE(A1;TROUVE(".";A1)-1)/24+(DROITE(A1;NBCAR(A1)-TROUVE(".";A1)))/SI(NBCAR(DROITE(A1;NBCAR(A1)-TROUVE(".";A1)))=1;144;1440)

                crdlmnt
                0
                1. Contributeur
                  Bonjour.

                  En B1, mettre la formule =SUBSTITUE(A1;".";",")*1
                  0