Arrondi sup

Résolu
Lyly601 Messages postés 67 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 16 octobre 2006 - 1 févr. 2006 à 08:47
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 1 févr. 2006 à 14:04
Bonjour à tous,



J'ai une macro qui me calcul un cout de stockage et je voudrai qu'elle arrondisse une partie de la formule explication;

je voudrai que dans la formule ci dessous, le terme de l'expression
((cout * (nb - (t * cmm))</italique> soit arrondi au supérieur.

comment faire et comment l'introduire dans ma formule?

Merci d'avance et bonne journée







Function coutstockage() As Currency

Dim cout As Currency

Dim nb As Integer

Dim cmm As Single

Dim qtépces As Integer

Dim nbjsécu As Integer

Dim coutstocksécu As Currency

Dim cmj As Single





nbjsécu = Sheets("D1").Cells(185, 8)

coutstocksécu = Sheets("D1").Cells(186, 8)



If Cells(183, 8) = "UM" Then

qtépces = Sheets("D1").Cells(126, 8)

nb = Sheets("D1").Cells(180, 2)

cmm = Sheets("D1").Cells(184, 5)

cout = Sheets("D1").Cells(184, 8)

cmj = Sheets("D1").Cells(182, 5)

End If

If Cells(183, 8) = "UC" Then

qtépces = Sheets("D1").Cells(126, 2)

nb = Sheets("D1").Cells(181, 2)

cmm = Sheets("D1").Cells(185, 5)

cout = Sheets("D1").Cells(184, 8)

cmj = Sheets("D1").Cells(183, 5)

End If



Dim nbmois As Integer

nbmois = Sheets("D1").Cells(187, 5)



Dim t As Integer

t = 0

Do While t <> nbmois

coutstockage = coutstockage + ((cout * (nb - (t * cmm)) "c'est ce terme que je souhaite arrondir "+ (cmj * nbjsécu * coutstocksécu)) / (nb * qtépces))

t = t + 1

Loop





End Function

10 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
1 févr. 2006 à 10:40
Salut,

Essaie plutôt ça pour arrondir au supérieur:

coutstockage = coutstockage + ((Int(cout * (nb - (t * cmm)) + 0.5) + (cmj * nbjsécu * coutstocksécu)) / (nb * qtépces))

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
spa666 Messages postés 39 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 24 février 2006
1 févr. 2006 à 09:08
Int(number)


Fix(number)


L'[javascript:hhobj_4.Click() argument] number peut contenir une valeur de type [javascript:hhobj_5.Click() Double] ou toute autre [javascript:hhobj_6.Click() expression numérique] valide. Si l'argument number contient une valeur de type [javascript:hhobj_7.Click() Null], Null est renvoyé.


Remarques


Les fonctions Int et Fix suppriment toutes deux la partie fractionnelle de l'argument number et renvoient l'entier obtenu.


Différence entre les fonctions Int et Fix : si number est négatif, Int renvoie le premier entier négatif inférieur ou égal à number, alors que Fix renvoie le premier entier négatif supérieur ou égal à number. Par exemple, Int convertit -8,4 en -9 et Fix convertit -8,4 en -8.


Fix(number) équivaut à :

Sgn(number) * Int(Abs(number))
0
Lyly601 Messages postés 67 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 16 octobre 2006
1 févr. 2006 à 09:12
Merci de votre répone, donc si je compren bien je l'introduit ainsi

coutstockage = coutstockage + int (((cout * (nb - (t * cmm)))) + (cmj * nbjsécu * coutstocksécu)) / (nb * qtépces))

??
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
1 févr. 2006 à 10:22
je connais pas int et fix mais je crois que ce que voulais dire spa, c'est :

coutstockage = 'ton expression
coutstockage = fix(coutstockage) 'ou int..

mais peut-etre devras-tu appeler la fonction après la boucle (sinon chaque valeur sera arrondie..) :

while t < nbmois
coutstockage = (a+b * e^papifaitdelaresistance ) - l'age du capitaine
t = t + 1
end while
dim coutstockage_finalresolutionmaster as double
coutstockage_finalresolutionmaster = fix(coutstockage)

sinon, moi je l'avais fait sans ces fonctions hérétiques, pour arrondir à 2 chiffres après la virgule.. (a bon entendeur : )

Dim stpar As String = coutstockage
Dim s2 As Char() = {","}
Dim ltp As Integer = stpar.IndexOf(s2)
Dim lgh As Integer = stpar.Length
If lgh - ltp < 3 Then
Else
If ltp < 0 Then
Else
Dim arr As String = stpar.Substring(ltp + 2, 1) If arr 1 Or arr 2 Or arr = 3 Or arr = 4 Then
stpar = stpar.Remove(ltp + 2, lgh - ltp - 2)
stpar = stpar.Insert(ltp + 2, "5")
End If If arr 6 Or arr 7 Or arr = 8 Or arr = 9 Then
Dim ars2 As String = stpar.Substring(ltp + 1, 1)
Dim ar2 As Integer = ars2
ar2 = ar2 + 1
Dim ars As String = ar2
stpar = stpar.Remove(ltp + 1, lgh - ltp - 1)
stpar = stpar.Insert(ltp + 1, ars)
End If
End If
End If
.Maytheforcebewithyou.Maxime.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 févr. 2006 à 13:10
Int(X)+1 arrondira à tous les coups X à la borne supérieure.



Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 févr. 2006 à 13:11
CanisLupus > OK pour ta méthode, mais un peu tordue quand même ...

Manu
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
1 févr. 2006 à 13:35
<econs> bah, c'est une méthode qui marche à tous les coups avec int, fix, format et round donc je la garde.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
1 févr. 2006 à 13:48
Certes, faut pas changer une équipe qui gagne !

Manu
0
Lyly601 Messages postés 67 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 16 octobre 2006
1 févr. 2006 à 13:50
Merci pour vos réponses
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
1 févr. 2006 à 14:04
Lyly601, pense à cliquer sur "Réponse acceptée !" pour la ou les réponses qui te conviennent.
Ca peux servir à ceux qui auraient la même question que toi. Merci pour eux.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Rejoignez-nous