Tableau décompte heures sur deux jours


effectivement faut changer le format des heures

Et voilà avec la fonction MOD ça fonctionne aussi

MOD(x;24) donne forcément un reste inférieur à 24.

:frowning:

Daniel

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 :slight_smile:

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 :slight_smile:

Euh…

:frowning:

Daniel

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? :grinning_face:

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 :wink:

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