Calculer une répartition à partir de 3 conditions

Bonjour,

D'abord un grand merci à tous ceux qui prennent de leur temps pour répondre aux différentes questions.

Je tiens à préciser que je n'ai quasiment aucune connaissance en VBA, mais je souhaiterais mettre en place un calcul automatique afin de trouver la meilleur répartition possible (avec une marge de +/- 20€) pour trois conditions dans un montant.

J'ai rempli manuellement l'exemple ci-dessous afin d'illustrer ce que je souhaiterais:

image

Je cherche à m'approcher le plus possible de 36576€, ma répartition me donne un total de 36560€ (ok avec ma marge de +/- 20€) avec la répartition suivante:

-55j pour la condition 1 soit 25300€

-23j pour la condition 2 soit 9660€

-4j pour la condition 3 soit 1600€

Est-il possible de rendre ceci automatique et si oui pourriez-vous m'y aider ?

Merci d'avance pour votre aide

8suivitest.xlsm (24.53 Ko)

Salut.

Alors on a:

T = 36576.3

X = 460

Y = 420

Z = 400

A , B , C des entiers inconnues

On cherche a résoudre:

X*A + Y*B + Z*C = T

1 équation, 3 inconnues... pour moi c'est plus un problème de VBA c'est un problème mathématiques... Ca me semble quasi impossible.

La seul solution serait par Dichotomie grâce a l'intervalle de 20€ que tu donnes ? en VBA ? Alors la je laisse les experts de ce forum trouver une solution !

En conclusion j'espère pour toi que je me trompe, mais je pense que ton problème n'est pas vraiment réalisable.. ?

EDIT: X*A + Y*B + Z*C = T Ressemble beaucoup à une équation cartésienne d'un plan c'est peut être une piste pour trouver la résolution mathématiques du problème ? J'ai jamais été une flèche en maths je suis désolé... mais si tu trouves l'équation pour X, Y et Z pour programmer ca en VBA ca va être du gateau je pourrais te le faire facilement

Je partais avec l'idée suivante:

T = 36576.3

X = 460

Y = 420

Z = 400

I=Somme Total

On réalise un calcul initial pour déterminer la valeur max de Z possible dans T soit T/Z et on arrondit à l'entier inférieur donc 91 pour notre exemple

Puis dans une 1ere boucle IF on réduit Z de 1 pour ajouter un X tant que l'écart entre I & T > 60

Puis dans une 2e boucle IF on réduit Z de 1 pour ajouter un Y tant que l'écart entre I & T > 20

enfin quelque chose dans ce sens

Ca fais très très "Bricolage"...

Tes X, Y, Z, vont être amené à changer ? Je peux te programmer ca en VBA mais je doute que tu puisse à chaque fois êtr ednas l'intervale de ± 20€ !

Après ca se tente

non mes X,Y,Z ne changerons jamais.

Pour l'intervalle c'est celui que j'identifiais, l'idée et d'être au plus proche (le +-20 n'est pas figé), on pourrait avoir des "demi-jours" par exemple 21,5j à 400€ si cela aide (mais déjà avec des entiers cela est largement suffisant je pense)

Et tu dois avoir minimum 1 jour dans chaques condition ?

non il est possible d'avoir 0 dans une des conditions

Je viens de faire un programme qui fonctionne mais..... bon sanf que mon programme est long...

Je prend le temps d'essayer d'améliorer ca et je te l'envoi.

Tu vas l'utiliser souvent le programme ? pour savoir si c'est génant qu'ils prennent plusieurs minutes a fonctionner

Disons 1 fois par semaine mais pour 6-8 calculs environ

Plus la valeur total du Tarif demandé et grand plus le programme est long a s'éxécuter.

J'ai bridé la valeur du nombre de jour de la condition 1 à 10 jours MAX cela permet de grandement raccourcir le temps de prog mais forcément un peu moins précis (on explore moins de possibilitées) C'est modifiable dans le code.

je t'envoi ce que j'ai fait puis, libre à queqlu'un de plus expérimenté qui passe par la d'optimiser le code !

J'ai test, super merci c'est déjà largement suffisant, je devrais pouvoir adapter si besoin.

Un énorme merci à toi.

bonjour

une contribution au centime près

cordialement

5redoushi.xlsx (21.30 Ko)

Super @Tulipe_4!

Est-il possible de limiter à un chiffre entier ou uniquement avec 0,5 les valeurs des conditions ?

Pour prendre un exemple concret, il faudrait avoir 1 ou 1,5 jour de condition 1 car 1,78 jour ne correspond pas réellement à quelque chose de réalisable.

re

j'avais posté pour le sport .... , car la méthode est cavalière , voire .................

alors voila , mais bien sur ,on ne peut plus être au centime près ...... disons à l'€

6redoushi2.xlsx (21.25 Ko)

@Tulipe_4 Quelle est tas résolution mathématiques ? comment à tu trouvé ces matrices ?

J'ai cependant trouvé des cas de figures ou tu ne trouves pas la combinaison la plus proche. Mais ta méthode reste cependant 100 fois plus rapide..

capture capture 2

Tout dépend ce don Redoushi a besoin exactement.

A+

Bonjour à vous deux,

Je cherche la combinaison la plus proche possible sans utiliser de valeur du genre "1,78" et que le temps d’exécution reste raisonnable (pas de soucis avec vos deux solutions la dessus).

Après le plus simple et le plus rapide avec un écart autour des 20€ max est ce que je préférerais.

Quelles sont les valeurs maximum que tu pourrais avoir pour la somme totale € ?

Je pense que mon prog peux vraiment aller chercher précisément la meilleure combinaison mais du coup dépasser les 20.000€ ca deviens vraiment très très long à éxécuter...

J'arrive pas à arranger ca...

Pour prendre une fourchette large je dirais un max vers 200K€

Re,

Bon alors voila je t'ai fait un outil que je trouve assez puissant, mais faudras un peu de patience (et j'espere que tu as un bon PC )

Pour une somme de 100.000€ j'ai chronométré environ 1 minutes 30 secondes

Pour une somme supérieur mon Excel plante à chaque fois... j'espère que tu as un PC plus puissant !

Vraiment la, le programme commence a être très très puissant mais il faut une bonne optimisation il demande trop de ressources au PC..

@Tulipe_4 Quelle est tas résolution mathématiques ? comment à tu trouvé ces matrices ?

J'ai cependant trouvé des cas de figures ou tu ne trouves pas la combinaison la plus proche. Mais ta méthode reste cependant 100 fois plus rapide..

capture capture 2

Tout dépend ce don Redoushi a besoin exactement.

A+

bonjour

c'est un système de résolution de matrice diagonale , je crois ................

cordialement

Rechercher des sujets similaires à "calculer repartition partir conditions"