Excel, chercher les différentes combinaisons

Résolu/Fermé
Dizzy84 - 27 juil. 2009 à 18:34
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 30 juil. 2009 à 15:14
Bonjour, Sous excel, je cherche les différentes combinaisons d'éléments possibles pour atteindre une somme précises en fonction d'une condition particulière.

Je m'explique, imaginons que je parle de 12 pommes de terres:

Nom / prix / poids
AAA / 02 / 11
BBB / 04 / 11
CCC / 03 / 11
DDD/ 03 / 11
EEE / 03 / 12
FFF / 04 / 12
GGG / 03 / 12
HHH / 03 / 12
IIIIII / 05 / 12
JJJ / 02 / 13
KKK / 05 / 14
LLL / 04 / 18


Disons que je ne veuille acheter que 8 patates.

Et j'ai un budget maximum de 25€.

Je souhaite, évidemment, avoir, pour 25€ au maximum, les 8 patates les plus lourdes possibles. Et si je pouvais payer moins de 25€ ça serait encore mieux!

En gros, je cherche à faire un classement des rapports poids/prix pour 8 patates ayant un prix total inférieur ou égal à 25€

Si le données se limitaient à ces 12-là, je laisserais tomber excel et je le ferais à la main, en essayant les différentes combinaisons possibles, mais malheureusement, la liste est bien plus longue que ces 12 "patates"-là!

Merci à tous ceux qui voudront bien me filer un coup de main, parce que j'ai bientôt fini d'arracher tous mes cheveux!
A voir également:

9 réponses

jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
27 juil. 2009 à 21:45
avant que je prenne plus la tete.. et j te jure que j me suis deja pris bien la tete...

dis moi si c'est quelque chose comme ca que tu veux :

http://dl.free.fr/getfile.pl?file=/VGrqGkPV

les différentes solution s'affiche sur la feuil1 apres la ligne 14.. bon, la c'est brut de décofrage.. mais bon, le principe de l'idée est là :)
2
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
28 juil. 2009 à 19:04
bonjour,

MDR !! mega lol...

Ben oui, y a du code deriere le bouton... !!!

fait outils, macro, visual basic editor, et taura le code...

bon, que je t explique quand meme..
colonne A le nom des patates, B sont prix et C sont poid

en ligne A14 et suivante :

1,1,1,1,1,1,1,1 si tu regarde bien .. y a 8 1 correspondant à tes 8 patates.. et le 1 correspond à la ligne le la colonne a.. donc, en solution du A14, pour <25€ tu peux acheter 8 patates 'aaa' à 2€ chacunes

Autres ex.. ligne 315:
1,3,1,1,1,2,1,2=> 5*1 +2*2 + 1*3 => 5 'aaa' à 2€ + 2 'bbb' + 1 'ccc' => 5*2€ + 2*4€ + 6€ = 24€

Bon, ya forcement des doublons.. mais je voulais pas trop avancer et me tordre mes 2 neurones si ce n'était pas ce que tu cherchais ;)
1
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
27 juil. 2009 à 18:44
bonjour
Je tiens à saluer la prouesse de l'explication...

Moi qui aime le concret mais concit.. c'est parfait :)

Je n'ai malheureusement pas la solution là comme ca.. mais je vais chercher :)

J 'vais faire une purée pour réfléchir un peu ;)
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
27 juil. 2009 à 21:38
Je suis sur une bonne piste... j'ai presque fini :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci! merci! ça a effectivement l'air d'être sur une très bonne voie! C'est exactement le principe à exécuter que je cherche!

Si j'ai bien compris, tu as réussi a obtenir toutes les combinaisons de 8 chiffres allant de 1 à 5 formant un total de 8, 9, 10, 11 ou 12!

C'est exactement un résultat comme ça que je voudrais obtenir!

Mais je ne comprends pas comment tu as fait, je ne vois aucune formule dans aucune cellules, et surtout je ne vois pas le lien entre les résultats et le tableau au-dessus?

Les chiffres dans le tableau constituent-ils les données de base qui t'ont permis d'obtenir les résultats en dessous? Ou sont-ils une synthèse de ces résultats? Dans les deux cas, je ne comprends pas comment le tableau t'as permis d'arriver à ce résultat merveilleux!!!

Est-ce que par hasard, le gros bouton intitulé "CommandButton1" au milieu de la feuille serait la réponse à mes questions?

Bref, je te remercie en tout cas mille fois pour ces efforts. Peut-être que si tu m'expliques seulement comment tu as obtenu ces résultats, je m'en sortirais...

Merci encore pour ces efforts!
0
c'est ouf, t'es un génie gars!

Faut que je me mette au langage de programmation.

C'est exactement ce qu'il me faut, pour les doublons je m'arrangerais.

Ne t'obliges pas à en faire plus, c'est déjà chanmé!

Par contre, si ça ne te dérange pas, je risque dans les prochains jours de te demander de m'expliquer certaines lignes (pas toutes, t'inquiètes pas, je vais essayer de me trouver des cours de virtual basic sur le net ou de m'en sortir avec l'aide sur excel, mais je présume d'avance que je ne comprendrais pas tout tout seul et qu'il me faudra vérifier auprès du créateur, toi en l'occurrence, si j'ai bien compris...).
Déjà j'ai vu qu'il y avait 2 pages, une qui s'appelait feuille 1 et l'autre module 1, et déjà faudrait que je comprenne la différence d'usage entre ces deux pages...

Merci e tout cas encore à toi de tous le temps que tu m'as consacré (y a pas à dire, y vraiment encore des types biens sur terre... ça rassure!)

A bientôt peut-être!
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
29 juil. 2009 à 10:20
salut :)

virtual basic => MDR : c'est Visual Basic ;)

Pas de souci pour l'aide ;)

Feuil1 c'est pour mettre du code en référence à la feuille nommée 'feuil1' de ton classeur
Un module sert à mettre du code qui peut d'appliquer à tout ton classeur ;)
0
Euh, en fait je crois que c'est un peu plus compliqué que prévu....

Sans encore changer le nombre de patates (toujours 12), j'ai changé leur prix et leur poids. Notons que leur poids était un chiffre à virgule. J'ai cliqué ensuite sur le bouton CommandButton1, et là,... l'ordi a plus rien voulu savoir. Il s'est mis à souffler, souffler, puis il s'est arrêté et plus rien n'a bougé dedans. Je l'ai éteins et j'ai recommencé en mettant des entiers sans virgules en guise de poids. Même résultat. (NB: mes "prix" de patates vont de 2 à 5 et je les ai trié dans l'ordre croissant, et mes "poids" vont de 11 à 18)

Alors moi qui voulait augmenter le nombre de patate en tout (j'ai besoin de faire des essais avec différentes combinaisons du nombre de "patate", de leur "poids" et de leur "prix"), je risque pas d'y arriver!

Pourrais-tu simplement m'indiquer:
- quelles lignes de code je dois changer pour modifier le nombre de patates en tout
- comment faire pour modifier les"poids" et les "prix" et pour afficher le résultat et à quoi dois-je faire attention (entier, réel, valeur max, valeur min, ...)
- et si jamais t'as le temps et que ça te dérange pas, y aurait-il moyens de rajouter la somme des prix et/ou la somme des poids, pour chaque combinaisons affichée ? (c'est pour traiter plus rapidement les doublons)

Après ça promis, j'arrête de t'embêter.

Merci encore

PS: en ayant essayer de comprendre un peu le truc, j'ai aussi pigé que t'étais non seulement bon en langage de programmation mais aussi en math!
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
30 juil. 2009 à 15:14
LOL.. je tavais dit que c'était en phase de teste...c'est normal qu il ai planté ton pc.. il faut que je l améliore grave...

Je suis pas un crack en math.. je fais juste tester toutes les solutions ;) et pour cela.. j suis un crack (oulalala les chevilles) en vb ;)
0