Arrondi sup

Résolu
Signaler
Messages postés
67
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
16 octobre 2006
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
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

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
39
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
24 février 2006

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))
Messages postés
67
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
16 octobre 2006

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))

??
Messages postés
288
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
26 janvier 2012
1
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.
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Int(X)+1 arrondira à tous les coups X à la borne supérieure.



Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
CanisLupus > OK pour ta méthode, mais un peu tordue quand même ...

Manu
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
<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 !?
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Certes, faut pas changer une équipe qui gagne !

Manu
Messages postés
67
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
16 octobre 2006

Merci pour vos réponses
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
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 !?