XL 2016 [RESOLU] Format personnalisé cellule

Nicocotte125

XLDnaute Nouveau
Bonjour

Pour un besoin bien particulier il a fallu que je transforme des heures travaillées en heures de cadran (le nombre de poste en 8h00 quotidien étant souvent sujet à changement)...
Par exemple pour une journée de travail en 2 postes de 8h00 (selon le découpage 5h00 <-> 13h00 <-> 21h00) s'il est 8h00 à ma montre le 27/04/2021, la cellule retournera :
  • A l'instant T=8h00 à ma montre pour une journée qui commence à 5h00 représente 3h00 de travail effectué sur les 16hrs (2 postes de 8hrs que comptera au total la journée de travail)
  • Transposé sur une base de 24hrs cela représente 3h00 x 24hrs / 16hrs = 4h30
  • Ce qui représente une journée de travail écoulée à : 19% (0,1875)
  • La valeur décimale de l'instant T sera donc de : 44313,1875
C'est la manière la plus simple que j'ai pu trouver pour annihiler l'effet des heures chômées entre deux journées contiguës (leur nombre variant arbitrairement selon le calendrier)

Donc en fait je transforme des heures en quantième de journée... Ma problématique est la suivante : Quelle syntaxe dois-je adopté pour que :
  • mon actuel "27/04/2021 04h30" jj/mm/aa ___ h:mm;@
  • apparaisse plutôt à l'écran comme étant "27/04/2021 19%" jj/mm/aa ___ ????????
J'ai fait plusieurs tentatives mais je n'arrive pas à isoler la partie décimale (0,1875). Par ailleurs il me faut absolument conserver la valeur numérique 44313,1875 pour le besoin de nombreuses formules dépendantes donc exit les =CONCATENER et autres formules qui manipulent du texte.

Si quelqu'un à la solution que je pourrais échanger contre ma gratitude :)

Nicolas C.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Nicolas,

juste une piste : pour isoler la partie décimale :

en A1 : 44313,1875 ; en B1 : =A1-ENT(A1)0,1875

si tu appliques le format 0% à B1, tu auras : 19%

dans les 2 cas, c'est une valeur numérique, pas du texte ! :)



pour obtenir "27/04/2021 19%" :

* avec un seul élément : le caractère % ne fait pas partie des formats de date (ou heure)

* avec 2 éléments différents : c'est pas possible d'appliquer un format personnalisé pour plus d'un élément ➯ c'est pas possible d'y arriver sans faire une concaténation de texte ; mais alors, comme tu l'as toi-même indiqué, ça ne sera plus du numérique.​

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Nicocotte125 (suite)

* en A1 : 27/04/2021 04h30

* format personnalisé de A1 : jj/mm/aaaa hh"h"mm

* formule en B1 :

=TEXTE(A1;"jj/mm/aaaa") & " " & TEXTE(A1-ENT(A1);"0%")

27/04/2021 19%



tu peux ensuite :

* masquer la colonne A afin d'afficher seulement 27/04/2021 19% en colonne B.

* utiliser A1 pour les calculs, même si la colonne A est masquée.

soan
 

Pièces jointes

  • Exo Nicocotte125.xlsx
    8.3 KB · Affichages: 13

Nicocotte125

XLDnaute Nouveau
Bonjour,

Merci pour vos réponses

En fait j'avais déjà pensé à créer des colonnes subsidiaires pour émuler le format en faisant de la manipulation de texte...

Mais le fichier étant déjà très lourd, je voulais limité le nombre de formules pour tenter d'économiser de précieuses secondes à chaque réactualisation de feuille commandée par les macro...

Aussi le format personnalisé "spécial" était très séduisant...