Mise en forme conditionnelle capricieuse
Bonjour à tous,
il y a quelques mois, j'ai demandé de l'aide sur le forum pour les formules d'un fichier. Tout fonctionne très bien, sauf qu'hier je me suis rendu compte qu'une mise en forme conditionnelle s'affiche pour certaines valeurs, mais pas pour d'autres.
Explication :
Mon fichier est un graphique pour faire simple. J'ai besoin d'avoir une barre rouge (takt-time) sur le graphique.
J'ai découpé mon tableau par tranche de 6 secondes. Quand je rentre une valeur pour le takt-time, une cellule qui est masquée convertie et arrondie à la tranche de 6 seconde supérieure correspondante.
Ex : si je rentre 00:12:28 , l'arrondi supérieur le plus proche est 00:12:30 , je pense que je vous avez compris
Bref, le problème c'est que selon la valeur que je rentre, la barre n'apparaît pas !!!
00:18:00 c'est bon, mais pas 00:19:00
00:21:00 c'est bon, mais pas 00:20:00
entre 10 et 20 minutes il y a beaucoup de valeurs qui ne fonctionnement pas. Je prend des valeur de minutes piles pour mes exemples, je n'ai pas testé les 200 possibilités !
La formule de MFC est pourtant bonne. Hier j'ai essayé sur un autre PC, avec un autre Excel et ça fonctionne parfaitement (pas le meme fichier mais exactement les mêmes formules)
Une idée ?
Merci d'avance
Bonjour,
Je pense que tu rencontres un problème longuement débattu depuis longtemps, consubstantiel au mode de calcul des ordinateurs et aux normes appliquées en la matière...
Pour traiter des nombres, le processeur doit les stocker en mémoire, or les capacités de stockage sont limitées et lorsqu'il s'agit de nombres dont le nombre de décimales est infini, il est évident que toutes ne rentreront pas en mémoire, la norme appliquée internationalement est de tronquer à 15 chiffres significatifs. C'est sans conséquence dans les calculs courants, mais la différence infinitésimale produite fait qu'un test d'égalité renverra FAUX !
Ce qui peut produire des cas surprenants tient aussi au fait que le processeur ne travaille pas en numération décimale, mais binaire et qu'un nombre pouvant avoir un nombre de décimales infini en système décimal (tel 1/3 par exemple) ne l'aura pas en système binaire et vice-versa (0,1 aura un nombre de décimales infini en binaire...)
La seule façon qu'on ait trouvée de pallier à ces inconvénients lors de tests d'égalité est de fixer la comparaison sur des arrondis. Je te propose donc d'essayer d'assoir ta MFC sur la formule suivante :
=ARRONDI(EJ12*86400;0)=ARRONDI($DP$8*86400;0)arrondi sur une valeur en secondes qui éliminera les écarts qui sont nécessairement inférieurs...
Cordialement.
MFerrand,
j'ai pas tout compris à ton explication très intéressante soit dit au passage, mais je viens de tester ta formule et ça fonctionne nickel !
Un grand merci à toi !