Aide au remboursement des commande monnaie

Résolu/Fermé
Newtonien - 27 déc. 2015 à 23:06
Hydr0s Messages postés 1678 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 août 2022 - 28 déc. 2015 à 18:25
Bonjour tout le monde

Voici ma question, je vais essayer d'être le plus clair possible. Je travaille en commerce, j'ai souvent besoin de rembourser en billet les commandes de monnaie que m'envoie la banque.

Je compte mon coffre grâce à des formules basique du genre:

valeur du billet*nombre de billet=valeur totale

par exemple

5 x 50 = 250
10 x 40 = 400
20 x 14 = 280
50 x 16 = 800
100 x 0 = 0
200 x 0 = 0
500 x 0 = 0

total du coffre = 1730

j'ai une commande monnaie de 870€ à rembourser:

je souhaiterai qu'excel me fasse une proposition de remboursement, afin qu'il me reste une quantité équilibrée de billet (à 2 ou 3 près)

par exemple:

"
aujourd'hui il est possible de rembourser votre commande de 870€:
40 billets de 5€
29 billets de 10€
6 billets de 50€
4 billets de 20€
"

Dans l'exemple il me resterai
10 billets de 5
11 billets de 10
10 billets de 20
10 billets de 50

Si jamais il n'y a pas assez de billets pour faire un remboursement de monnaie équilibré, alors excel ne me propose pas de commande.

Si c'est un travail long et fastidieux, n'hésitez pas à me dire vers quelle fonctionnalité je dois me diriger pour y arriver, je me débrouillerai, j'ai juste besoin de partir dans la bonne direction ;)

Bonne soirée
A voir également:

1 réponse

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
28 déc. 2015 à 04:29
Bonjour,

voilà un exemple de solution par formule : https://www.cjoint.com/c/ELCdkk7LJjS

J'y ai mis également une version matricielle plus concise mais moins compréhensible.

Le détail est en colonne G:G
Les valeurs à saisir sont en jaune.
Il y a deux MFC qui gère les solutions insuffisamment régulières.

Je suis parti du calcul de la répartition du coffre-commande (1730-870=860 sur ton exemple) avec les billets contenus dans le coffre.
J'ai fait la somme des valeurs unitaires des billets du coffre de départ (5+10+20+50 soit 85)
J'en ai déduit qu'il fallait 10,12 et des poussières de cette somme de 85 pour faire les 860.
J'ai pris la partie entière, 10, ce qui permet d'atteindre 850.
Il manque 10 pour faire 860.
La table de répartition des delta indique que un écart de 10 est compensé par un ajout de 1 billet de 10. Cette table est modifiable car il y a plusieurs possibilité d'atteindre un delta. Je pense avoir choisi la plus optimale en terme de nombre de billets à ajouter.

A partir de là, il suffit d'ajouter 1 billet de 10 à la moyenne de 10 pour obtenir le résultat du nouveau coffre et, par soustraction, les nombres de billets à sortir pour la commande.

Je sais que cette solution risque d'être mise à mal dans les cas de coffres de départ peu "harmonieux" en quantité de billets.
C'est en tout cas une idée assez simple.

cordialement
0
Merci de t'être donné du mal, c'est parfait !!!

A bientôt
0
Hydr0s Messages postés 1678 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 août 2022 672
28 déc. 2015 à 09:52
Bonjour,
Génial cette solution ! Cependant, peux-tu m'éclaircir certains points des formules (la, j'ai découvert que je connaissais rien à excel ^^) :
  • comment a été calculée la répartition des billets selon Delta, à la main ou automatiquement ?
  • Comment on assigne un nom à une variable (ici, les matrices)
  • Que signifie
    (D3:D9<>0)
    dans
    =SOMMEPROD((D3:D9<>0)*C3:C9)
    ? (!= 0 ?)
  • Pourquoi certaines formules sont entre { } lorsqu'on passe le curseur-dessus mais ceux-ci disparaissent à l'édition de la formule ?

Merci d'avance de tes réponses...
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856 > Hydr0s Messages postés 1678 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 août 2022
28 déc. 2015 à 16:53
Bonjour,

Répartition des billets selon Delta : à la main.
en fait, la séquence 5 à 95 se répète pour chaque centaine, donc c'est très rapide à faire.
J'ai préféré une table plutôt qu'un algorithme pour simplifier et offrit plus de souplesse.

nom à une variable : tout simplement via le ruban par l'onglet formules\définir un nom.
j'ai aussi souvent utilisé créer depuis sélection parce que c'est plus rapide.


(D3:D9<>0) dans =SOMMEPROD((D3:D9<>0)*C3:C9) : je voulais faire la somme des coupures présentes dans le coffre. il fallait donc éliminer les valeurs nulles. d'où le différent de zéro (<>0) pour D3:D9.

certaines formules sont entre { } : ce sont des formules matricielles. on les obtiens en sélectionnant une zone de cellules (I3:I9 dans mon modèle), en mettant la formule (
=(Nb_Billets<>0)*(Nb_Billets-(ENT((Total_en_coffre-Commande)/SOMMEPROD((Nb_Billets<>0)*Val_Billets))+TRANSPOSE(RECHERCHEV(Total_en_coffre-Commande-ENT((Total_en_coffre-Commande)/SOMMEPROD((Nb_Billets<>0)*Val_Billets))*SOMMEPROD((Nb_Billets<>0)*Val_Billets);table_delta_billets;TRANSPOSE({2;3;4;5;6;7;8});FAUX))))
) dans la zone d'édition (là où il y a le fx) et, pour finir, en validant par CTRL+MAJ+ENTER.

Les formules matricielles sont très puissantes; elles concentrent les calculs intermédiaires et simplifient la présentation du résultat, elles remplacent avantageusement (pour ceux qui ne connaissent pas VBA) des lignes de codes de macros mais elles ont l'inconvénient d'être difficile à comprendre et donc à maintenir et de devenir très consommatrices de ressources (processeur/mémoire).
le VBA reprends rapidement le pouvoir lorsqu'il y a beaucoup de données à traiter.

cordialement
0
Hydr0s Messages postés 1678 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 24 août 2022 672
28 déc. 2015 à 18:25
Merci d'avoir pris le temps d'écrire toutes ces explications :P
0