XL 2016 Distribution de prix

EliotNaiss

XLDnaute Nouveau
Bonjour à toutes et tous.
Je faisais jusqu'à ce jour une gymnastique manuelle prise de tête, mais je me demande si ceci ne pourrait pas être réalisé automatiquement ??
Je compte sur vous pour me donner vos avis et, pourquoi pas, une grosses aide pour atteindre mon but.
Je vous expose mon problème.

Je suis en présence d'un nombre variable de personnes (Pers) au maximum 14.
Je dois répartir une somme précise à chaque Pers (somme sous son identifiant) avec X chèques (Colonne B) et un peu d'espèces (C4).
En fin de répartition, il doit rester une somme Y de 500€ (Y peut être variable aussi),
Je cherche un moyen qui me permettrait d'attribuer les chèques et espèces à chaque Pers.
En espérant m'être bien expliqué, je vous envoie ma feuille Excel en format pdf, si vous la voulez en xlsx dites-le moi.
Avez-vous une idée ?

Merci beaucoup par avance.
Cordialement.
 

Pièces jointes

  • Ventilation Argent.pdf
    304.7 KB · Affichages: 18

natorp

XLDnaute Accro
Bonjour Eliot

Il nous faudrait bien-sûr le fichier en xlsx
Mais quelle est donc la répartition ? il est attribué une somme fixe à chaque personne ?
S'agit-il de savoir combien de chèques chaque personne se voit attribués ? et de quelle valeur ?
Pas bien compris le besoin... désolé

Cordialement, Gérard
 

EliotNaiss

XLDnaute Nouveau
Bonjour Gérard,
Alors, comme j'ai essayé d'expliquer :
- chaque personne Pers doit recevoir une somme fixe dont le montant est écrit sous chaque nom.
1034646

- dans une colonne j'ai un certain nombre de chèques, de divers montants,
- dans une cellule (C4) j'ai une somme en espèces.
- je dois restituer les sommes individuelles avec les moyens de paiement à ma disposition, mais il n'y a pas de nombre maxi/mini de chèque à donner, c'est tellement aléatoire que j'en ai mal à la tête rien que de l'expliquer ;).

Dans mon exemple, il y a un écart de 500€, ce qui est normal. Cette somme est variable, mais ne gêne en rien dans la distribution, c'est juste pour ne pas être étonné de ce résiduel.

Pour la somme en espèces, je n'ai pas détaillé les pièces et billets, peut-être serais-je obligé d'en passer par là (je n'espère pas en arriver là...)

Le fichier joint est solutionné manuellement :eek:
Cordialement.
 

Pièces jointes

  • Ventilation Argent.xlsx
    15.5 KB · Affichages: 12
Dernière édition:

JBARBE

XLDnaute Barbatruc
Bonjour à tous, toutes,
J'ai attribué des couleurs à chaque personnes et ces couleurs sont réparties dans les chèques et espèces !
Le total restant est de 465 € !
Mais je reste dubitatif de le faire par formules ou macros (en ce qui me concerne) !
En effet, je l'ai fait manuellement !
J'ai donc comme on peut le voir commencé par les gros chèques, compensés par des petits et de la monnaie !
Mais comment demander à la machine comme à la caisse d'un magasin de donner tel chèque, tel monnaie !!!!!!!
Je suis curieux de voir une bonne réponse !
Quant à moi j'ai fait seulement le travail de la caissière !
Bonne journée !
 

Pièces jointes

  • Ventilation Argent.xlsx
    20.6 KB · Affichages: 7

EliotNaiss

XLDnaute Nouveau
Bonjour à tous, toutes,
J'ai attribué des couleurs à chaque personnes et ces couleurs sont réparties dans les chèques et espèces !
Le total restant est de 465 € !
Mais je reste dubitatif de le faire par formules ou macros (en ce qui me concerne) !
En effet, je l'ai fait manuellement !
J'ai donc comme on peut le voir commencé par les gros chèques, compensés par des petits et de la monnaie !
Mais comment demander à la machine comme à la caisse d'un magasin de donner tel chèque, tel monnaie !!!!!!!
Je suis curieux de voir une bonne réponse !
Quant à moi j'ai fait seulement le travail de la caissière !
Bonne journée !
Merci JBARBE de vous être penché sur mon problème/projet !
J'ai procédé également manuellement (j'ai modifié ma PJ pour l'exemple depuis).
Je suis aussi curieux de voir si cela va aboutir, personnellement je ne suis pas assez balaise en VBA pour ça !

Wait & see.

Cordialement
 

ODVJ

XLDnaute Impliqué
Bonsoir à tous,

Tu peux utiliser le solveur pour obtenir une solution.

Tu passes par des variables binaires :
  • un tableau de n lignes x m colonnes avec n = nb chèques et m = nbre personne/frais
Et quelques contraintes :
  • somme chaque ligne du tableau de variables = 1 pour qu'un chèque ne puisse être attribué qu'une fois
  • le total colonne des chèques attribués à une personne/frais doit être inf ou égal au montant à donner pour cette personne/frais
  • la somme des écarts entre le "à donner" et le distribué par chèque doit être égal au montant espèces (ce qui revient à dire que tous les chèques sont affectés, i.e. la somme des variables binaires égale n)
Pas besoin d'objectif pour ce modèle.

Cordialement

PS : comme le solveur excel est limité, il te faudra utiliser opensolver par exemple (c'est gratuit et pas mal puissant pour un solveur vba)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Je doute qu'avec 14 personnes et avec sans doute un grand nombre de chèques et des partitions possibles de la somme en espèce en un nombre astronomique, qu'un solveur puisse le faire en un temps raisonnable.

Soyons pratique : mettons sur un compte tous les chèques et les espèces. Il suffit ensuite de faire 14 chèques sans se creuser la tête et en tombant juste.:cool::p
 

EliotNaiss

XLDnaute Nouveau
Bonjour à tous,

Je doute qu'avec 14 personnes et avec sans doute un grand nombre de chèques et des partitions possibles de la somme en espèce en un nombre astronomique, qu'un solveur puisse le faire en un temps raisonnable.

Soyons pratique : mettons sur un compte tous les chèques et les espèces. Il suffit ensuite de faire 14 chèques sans se creuser la tête et en tombant juste.:cool::p
Merci pour toutes vos réponses.
A vous lire je crois qu’en effet la finalité sera comme le dernier commentaire !
Ce sera plus pratique et plus rapide !! .
Bien à vous.
Cordialement.
Eliot
 

ODVJ

XLDnaute Impliqué
Non, opensolveur met moins de 2 secondes pour trouver une solution (si elle existe bien sûr) pour 300 chèques et 16 personnes.

Je pense même qu'en mettant un switch minisat on peut espérer réduire le temps de traitement. Après, ce sera une question de mémoire....
 

ODVJ

XLDnaute Impliqué
@mapomme : Pour t'éviter une modélisation, voici le fichier (onglet feuil1 (2)).

Télécharge d'abord opensolver, lance Solve dans l'onglet données\opensolver.

Auparavant, va dans données\model\options et coche "show optimisation progress while solving" pour voir une miniature d'écran msdos qui te liste les itérations de la résolution, la faisabilité et la durée d'exécution (1,41s chez moi).

Cordialement
 

Pièces jointes

  • xld_Ventilation Argent.xlsx
    55.8 KB · Affichages: 6

EliotNaiss

XLDnaute Nouveau
Bonjour le Forum,
Bonjour EliotNaiss, natorp, JBARBE, ODVJ, mapomme,

Pour le fun une solution par formule voir les lignes 20, 21et 22

Cordialement

On encaisse les cheques et on en refait d'autre
Bonjour au forum,
merci de cette solution Jocelyn, mais cette formule est super, mais ne fait que calculer la somme des chèques à distribuer individuellement, mais cette valeur est déjà connue ;).
J'étudie la soluce de JBARBE...
En tous cas, grand merci à tous.
 

Discussions similaires

Réponses
7
Affichages
406