OVH Cloud OVH Cloud

arrondi au supérieur

2 réponses
Avatar
ludivine
bonjour à toutes et à tou
je souhaite faire un arrondi au supérieur d'une division d'un nombre d'heure. Dans mon cas, j'ai la chose suivante
MonAction = tb!Actio
MonDomaine = tb!domain
hh = Left(tb![Duree], 2
mm = Right(tb![Duree], 2
If hh > 7 The
Nbintervention = Nbintervention + tb!Nbint + Fix(hh / 7
Els
Nbintervention = Nbintervention + tb!Nbin
End I
TotalHeure = TotalHeure + h
TotalMinute = TotalMinute + m
le problème rencontré est que lorsque j'ai 07:15, il prend hh/7 et trouve donc 1, moi je veux 2
comment faire
merci d'avanc
@+

2 réponses

Avatar
Raymond [mvp]
Bonjour.

essaie de faire : Fix((hh + (mm / 100)) / 7)


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ludivine" a écrit dans le message de
news:
bonjour à toutes et à tous
je souhaite faire un arrondi au supérieur d'une division d'un nombre
d'heure. Dans mon cas, j'ai la chose suivante :

MonAction = tb!Action
MonDomaine = tb!domaine
hh = Left(tb![Duree], 2)
mm = Right(tb![Duree], 2)
If hh > 7 Then
Nbintervention = Nbintervention + tb!Nbint + Fix(hh / 7)
Else
Nbintervention = Nbintervention + tb!Nbint
End If
TotalHeure = TotalHeure + hh
TotalMinute = TotalMinute + mm
le problème rencontré est que lorsque j'ai 07:15, il prend hh/7 et trouve
donc 1, moi je veux 2.

comment faire?
merci d'avance
@+


Avatar
Eric
Bonjour Ludivine,

J'ai du mal à te suivre
Duree est un champ de ta table au format heure abrégée je suppose. Tu
mets:
hh = Left(tb![Duree], 2) donc hh contient une valeur entre 00 et 24
c'est donc un entier. Par contre pas forcément multiple de 7.

Le problème serait donc de savoir s'il faut rajouter 1 intervention de
plus dès lors que le modulo de hh par 7 est différent de 0.
Est-ce là ton problème ?
Si c'est le cas, alors sous la ligne:
Nbintervention = Nbintervention + tb!Nbint + Fix(hh / 7)
tu mets
If hh Mod 7 <>0 then
Nbintervention = Nbintervention + 1
End If

Remarque:
mm = Right(tb![Duree], 2) --> es-tu sure que ca te retourne bien les
minutes ? chez moi je récupères les secondes ! Pour récupérer les minuts
je dois mettre:
mm=mid(tb![Duree],4, 2) bien que mon champ soit formaté hh:mm


A+
Eric


"=?Utf-8?B?bHVkaXZpbmU=?="
écrivait news::

bonjour à toutes et à tous
je souhaite faire un arrondi au supérieur d'une division d'un nombre
d'heure. Dans mon cas, j'ai la chose suivante :
MonAction = tb!Action
MonDomaine = tb!domaine
hh = Left(tb![Duree], 2)
mm = Right(tb![Duree], 2)
If hh > 7 Then
Nbintervention = Nbintervention + tb!Nbint + Fix(hh / 7)
Else
Nbintervention = Nbintervention + tb!Nbint
End If
TotalHeure = TotalHeure + hh
TotalMinute = TotalMinute + mm
le problème rencontré est que lorsque j'ai 07:15, il prend hh/7 et
trouve donc 1, moi je veux 2. comment faire?
merci d'avance
@+