Paramétrer un Solveur avec VBA

Y compris Power BI, Power Query et toute autre question en lien avec Excel
r
robindu06
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 11 juin 2019
Version d'Excel : 2016

Message par robindu06 » 12 juin 2019, 17:41

De plus sachant que le coût est lié aux 3 produits, voyant le lien de cause à effet, je me suis dit solveur après peut-être ai-je tord..
r
robindu06
Jeune membre
Jeune membre
Messages : 17
Inscrit le : 11 juin 2019
Version d'Excel : 2016

Message par robindu06 » 14 juin 2019, 00:07

Pedro22 a écrit :
12 juin 2019, 10:07
robindu06 a écrit :
12 juin 2019, 09:54
En gros, comme j'ai dit dans l'annonce du départ je souhaite maximiser le résultat global et pour cela j'ai besoin que le solveur choisisse les meilleurs solutions ( choix entre 2 ) pour chacun des 3 produits différents dans le but de maximiser le global vu que le résultat est lié aux coûts des 3 produits :)
Quelques questions supplémentaires :
- Tes produits correspondent bien aux colonnes (GA, GP et GT) ?
- Le choix d'une des 2 lignes/solutions sur l'un des 3 produits conditionne-t-il le choix des 2 autres produits ? Dans ton fichier, tu as choisie la première solution pour chacun des 3 produits, ou la seconde, mais jamais solution 1 colonne GA, sol. 2 colonne GP et sol. 1 colonne GT par exemple...
- VBA a-t-il une utilité quelconque ?
Oui mes produits correspondent à ces initiales.
Oui il conditionne le choix des autres d'ou la solution du solveur mais peut etre ai je faux... J'ai choisi la 1 ère solution pour tous cas j'avais une question et je devais prendre l'option 1 pour tous les produits ^^.
Et du coup VBA je ne sais pas trop... mais dans tous les cas je dois trouver la meilleure solution pour maximiser le résultat globale.. en utilisant soit l'uo1 soit la 2 pour chaque activité et donc pour les produits :)
j
jvdo
Jeune membre
Jeune membre
Messages : 43
Appréciation reçue : 1
Inscrit le : 25 juillet 2018
Version d'Excel : 2010

Message par jvdo » 14 juin 2019, 10:10

Bonjour,

Regarde la formule de ta cellule cible ($G$80) que tu souhaites minimiser.
c'est égal à : 30 + (Admin_GA/1500+Admin_GP/1500+Admin_GT/2500) + (Prod_GA/1500+Prod_GP/1500+Prod_GT/2500) + (Distri_GA/1500+Distri_GP/1500+Distri_GT/2500)
Tous les numérateurs sont les valeurs des choix U1 ou U2 réalisés par activité, autrement dit, les valeurs en D68:F68, D72:F72, D76:F76.

Si tu réarranges cette formule en tenant compte du fait que 1/1500=5/3/2500 :
G80 : =30 + (5/3*Admin_GA/2500+5/3*Admin_GP/2500+Admin_GT/2500) + (5/3*Prod_GA/2500+5/3*Prod_GP/2500+Prod_GT/2500) + (5/3*Distri_GA/2500+5/3*Distri_GP/2500+Distri_GT/2500)

soit : =30+ (5/3*Admin_GA+5/3*Admin_GP+Admin_GT+5/3*Prod_GA+5/3*Prod_GP+Prod_GT+ 5/3*Distri_GA+5/3*Distri_GP+Distri_GT)/2500

mais : 5/3*Admin_GA+5/3*Admin_GP+Admin_GT est égal à 5/3*Admin_GA+5/3*Admin_GP+5/3*Admin_GT-2/3*Admin_GT, soit 5/3*(Admin_GA+Admin_GP+Admin_GT)-2/3*Admin_GT.

or Admin_GA+Admin_GP+Admin_GT = 50.000 donc on finit avec 5/3*Admin_GA+5/3*Admin_GP+Admin_GT = 5/3*50000-2/3*Admin_GT.

Tu fais la même chose avec les 2 autres activités et tu obtiens au final G80 : =30+(5/3*50000-2/3*Admin_GT+5/3*75000-2/3*Prod_GT+5/3*30000-2/3*Distri_GT)/2500, soit =30+5/3*155000/2500-2/3*(Admin_GT+Prod_GT+Distri_GT)/2500

Pour minimiser, tu laisses tomber les constantes 30+3/5*155000/2500 et /2500.

Au final, minimiser G80 revient à minimiser -(Admin_GT+Prod_GT+Distri_GT) autrement dit, à maximiser Admin_GT+Prod_GT+Distri_GT.

Tu as donc à la fois ta clé de répartition des coûts à l'intérieur d'une activité et le choix U1 ou U2 qu'il faut faire par activité.

Naturellement tout ça s'appuie sur les infos que tu as bien voulu nous donner.

Petites précisions concernant le solveur et les problèmes qu'il peut aider à résoudre :
1) il te faut bien souvent une fonction économique à maximiser ou minimiser (G80 dans ton cas)
2) il te faut des variables qui influent sur la fonction éco et qui "jouent" dans des domaines (binaire, entier, positifs, multiples de 3 .... entiers impairs positif <1500.51.... bref tu peux tout envisager)
3) en dehors de ces contraintes de variables, il te faut des contraintes qui limitent le domaine convexe des solutions possibles.
Ces contraintes doivent rester linéaires pour la programmation linéaire.

Ce sera un bon exercice pour toi que de reformuler ton problème en fournissant des réponses complètes et précises aux points 2 et 3.

Cdlt
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message