Bonjour,
Il ne faut pas diviser par 24, mais par 1 (qui représente effectivement 24 heures)
Bonjour,
Vous pourriez m’expliquer??? Car je rame avec toutes les solutions ![]()
Ce serait super sympa de votre part grand merci
TABLEAU TEST HEURES.xlsx (9,1 Ko)
Ton fichier en retour
TABLEAU TEST HEURES_1.xlsx (9,6 Ko)
Un SUPER grand merci à toi ![]()
Hello,
Je ne vois pas du tout ce qui est dérangeant.
Ou alors, il faut imposer une entrée de date + heure
Sinon, 5 - 5 a toujours fait 0, non? ![]()
Outre le fait que renseigner ses heures de travail quand on a pas travaillé, c’est chelou, il peut s’agir d’astreintes qui sont, elles souvent de 24 h. Ceci dit, effectivement…
Pour être complet, notons que la fonction MOD renvoie parfois des résultats incorrects et qu’il est recommandé d’utiliser :
=(C2-B2)-(ENT(C2-B2))
plutôt que :
=MOD(C2-B2;1)
Daniel
Re-,
Un horodateur fournira toujours une date + une heure, donc le problème ne devrait pas se poser.
Maintenant, je serais curieux d’observer ce dysfonctionnement, avec la fonction “MOD” (autant, avec DateDiff, je le sais, autant avec “MOD”, je n’en avais jamais observé, mais je n’ai certainement pas la science infuse…)
Bonne soirée ![]()
Re,
Je ne voudrais vraiment pas paraître “lourd”, mais, lorsque, personnellement, j’affirme une vérité “vraie”, j’assume….
Tu pourrais développer, stp?
Rhô…
Je ne l’avais même pas vu…
“The” citation of the day…
“renseigner ses heures de travail quand on a pas travaillé, c’est chelou”
Euh, Daniel77, rassures-moi, t’as rien à voir avec “Danielco” (ou autre pseudo, bien connu sur les forums d’xl)?
bonjour le fil, je suis curieux et je veux voir quelque défauts de la fonction “mod” …
et pour être complèt ma proposition avec le fichier de cousinhub (que je salute, et le reste aussi) en D2, mais je crains que cette “correction” causera d’autres problèmes. Alors la formule en D3 …
TABLEAU TEST HEURES_1.xlsx (9,7 Ko)
Si, c’est moi, pourquoi ? Tu n’es pas rassuré ?
Daniel
Bonjour,
Je ne peux pas donner d’exemple,l’anomalie se produit de manière aléatoire suivant la version d’Excel et suivant la cellule. C’est flippant quant ça se produit. Je l’ai constaté une fois avec Excel 2007 (pas essayé avec une autre version). On tire la formule vers le bas, et avec les mêmes valeurs, l’anomalie se produit. A l’époque, j’avais été en relation avec un ingénieur MS qui m’avait déconseillé MOD et m’avait indiqué le contournement.
Le problème est similaire avec VBA bien que les bibliothèques utilisées soient différentes.
PS. Je soumets celle-ci à ta sagacité :
Daniel
Parfait ! Mais ça ressemble à de l’acharnement thérapeutique, non ?
Daniel
Bonjour,
Ben si, bien au contraire.
Et effectivement, avec ton fil suivant, on pourrait avoir quelques doutes, quant à l’utilisation de “MOD”. Mais je vais quand même continuer à l’utiliser.
Bonne journée
si on utilise des integers comme denominateur, le problème ne se pose pas et comme 1 est integer ….
un petit test
Sub test()
MsgBox 1.2 - Int(1.2 / 0.1) * 0.1
MsgBox Evaluate("mod(1.2,0.1)") - 0.1
ReDim d(2) As Double
Application.ScreenUpdating = False
For i = 1 To 1000
If i Mod 1000 = 0 Then Application.StatusBar = i
d(1) = WorksheetFunction.RandBetween(-10, 10)
d(2) = [Rnd]
d(0) = d(1) + d(2)
[A1] = d(0)
If Evaluate("mod(a1,1)") <> d(2) Then Stop
'If [b1] <> d(2) Then Stop
Next
Application.StatusBar = False
Beep
End Sub
.
les 2 premières lignes vous montrent un écart d’environ 1E-16 à 1E-15 si on divise par quelque chose qui ne’est pas integer, C’est nulle mais cela cause votre mauvais résultat.
Puis le boucle avec des integer, si nécessaire 1.000.000 boucles sans erreur
Apparemment, oui, mais il y quand même doute sérieux. Le problème, c’est que, quand on travaille avec des cellules et non des constantes, on ne sait pas si le diviseur est ou non un entier.
Daniel






