Coupures monétaires

Soit un montant à payer, comment faire pour décomposer ce montant en "coupures monétaires" ?

Avec La valeur faciale des coupures en B1:G1 (100 50 20 10 5 1...)
En A2:Ax les valeurs à transformer
En B2 : =ENT(A2/$1)
En C2 : =ENT((A2-(B2*$1))/$1)
En D2 : =ENT((A2-(B2*$1)-(C2*$1))/$1)
En E2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1))/$1)
En F2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1))/$1)
En G2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1)-(F2*$1))/$1)
Recopie B2:G2 en Bx:Gx
AV *****************************************************

Autre solution :
En B2 : = ENT(A2/$1)
même chose En C2 : ENT(ARRONDI(-SOMMEPROD($1:B$1;:B2);2)/C$1) Que tu t'empresses de recopier jusqu'à G2. L'intérêt de cette dernière formule est qu'elle réagit bien également au cents. Donc, tu pourrais avoir en A2 des montants avec des cents et en H1:L1, les paniers associés aux cents d'une devise (Au Canada, 0,25 / 0,10 / 0,05 / 0,01 ) ******************************************************

En VBA : à copier dans un module standard :

sub InsérerMontant()
'Denis Michon
'544 représente le montant à décortiquer ....
MsgBox Calcul(544)

end sub

Function Calcul(Cash As Double)

Dim Cent As Integer, cinquante As Integer, vingt As Integer
Dim Cinq As Integer, One As Integer
Cent = Int(Cash / 100)
cinquante = Int((Cash - (Cent * 100)) / 50)
vingt = Int((Cash - ((Cent * 100) + (cinquante * 50))) / 20)
dix = Int((Cash - ((Cent * 100) + (cinquante * 50) + vingt * 20)) / 10)
Cinq = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10))) / 5)
One = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10) + Cinq * 5)) / 1)

If Cent 0 Then
Message = Cent & " Cent(s) " & vbCrLf
End If
If cinquante > 0 Then
Message = Message & cinquante & " Cinquante(s)" & vbCrLf
End If
If vingt > 0 Then
Message = Message & vingt & " Vingt(s)" & vbCrLf
End If
If dix > 0 Then
Message = Message & dix & " Dix" & vbCrLf
End If
If Cinq > 0 Then
Message = Message & Cinq & " Cinq(s)" & vbCrLf
End If
If One > 0 Then
Message = Message & One & " 1 Dollar"
End If
Calcul = Message
End Function
sub fdasf()

MsgBox Calcul(544)

end sub

Ce mois-ci sur Excelabo

- Pas de nouvelle page.
- 2 pages modifiées.