Afficher toute les solutions d'une somme variable

florent.76

XLDnaute Nouveau
Bonjour à tous !

J'ai un petit problème à vous soumettre. A défaut d'une solution, j'aimerai savoir de quel côté creuser (formule dont je connais bien le fonctionnement, solveur que je n'ai jamais utilisé, autre solution ?)

Voici les données du problème :

Je prends un exemple simple sachant que beaucoup plus de lettres ont un coefficient :
J'ai A qui vaut 1 ou 50
J'ai B qui vaut 2 ou 20
J'ai C qui vaut 3 ou 30 ou 100

On veut calculer B+C

Comment faire pour que toutes les solutions s'affichent dans des cases contigües ???
Ici, on aurait 6 solutions que sont :
= 2+3 ; 2+30 ; 2+100 ; 20+3 ; 20+30 ; 20+100
= 5 ; 32 ; 102 ; 23 ; 50 ; 120

Merci par avance ! :eek:
 

Gael

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Re,

Comme on a pu le constater tout au long du fil, on arrive vite à un nombre de combinaisons élevée pour peu que l'on choisisse plusieurs fois des lettres avec 3 valeurs chacune. mais tout dépend du nombre de lettres maximal. pour l'instant la macro va jusqu'à 15 lettres et s'arrête si le nombre de combinaisons dépasse la feuille.

Sinon, tu peux mettre n'importe quelle valeur dans la limite de 3 valeurs numériques par lettre (mais si tu veux en mettre plus, c'est très facile à modifier).

@+

Gael
 

abcd

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Bonjour,

Il suffit de faire l'essai pour voir ce que cela donne.

Pour la solution par formule, aucun problème, étant donné que les formules font indirectement référence aux valeurs par les adresses des cellules.
Je suppose que pour la macro c'est la même chose.

Comme je n'avais pas bien compris la question au départ (lol), j'ai fait un autre test : augmenter le nombre de colonnes contenant les valeurs.
Pour les formules, c'est très simple, vois l'exemple en pièce jointe, avec un mot d'explication.
Je me demande (et je suis curieux de le savoir) si par macro c'est aussi si simple pour quelqu'un (comme moi) qui n'y connait rien.

J'essaie de te fournir l'explication des formules en cours de soirée.

abcd

Edition : je n'avais pas vu la réponse de Gael !
 

Pièces jointes

  • florent V6.zip
    19.6 KB · Affichages: 38

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Re,

Comme on a pu le constater tout au long du fil, on arrive vite à un nombre de combinaisons élevée pour peu que l'on choisisse plusieurs fois des lettres avec 3 valeurs chacune. mais tout dépend du nombre de lettres maximal. pour l'instant la macro va jusqu'à 15 lettres et s'arrête si le nombre de combinaisons dépasse la feuille.

Sinon, tu peux mettre n'importe quelle valeur dans la limite de 3 valeurs numériques par lettre (mais si tu veux en mettre plus, c'est très facile à modifier).

@+

Gael
Exact, on peut vite faire exploser le nombre de solutions avec plus de 2 valeurs numériques par lettres !

Je n'en ai pas besoin de plus de 3 pour le moment en tout cas, par contre je serai amené à modifier les valeurs dans cette limite : tout est donc parfait ! MERCI pour cette macro qui me sera très précieuse :p

Florent.
 

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Bonjour,

Il suffit de faire l'essai pour voir ce que cela donne.

Pour la solution par formule, aucun problème, étant donné que les formules font indirectement référence aux valeurs par les adresses des cellules.
Je suppose que pour la macro c'est la même chose.

Comme je n'avais pas bien compris la question au départ (lol), j'ai fait un autre test : augmenter le nombre de colonnes contenant les valeurs.
Pour les formules, c'est très simple, vois l'exemple en pièce jointe, avec un mot d'explication.
Je me demande (et je suis curieux de le savoir) si par macro c'est aussi si simple pour quelqu'un (comme moi) qui n'y connait rien.

J'essaie de te fournir l'explication des formules en cours de soirée.

abcd

Edition : je n'avais pas vu la réponse de Gael !
Merci !!! Tu avais très bien compris la question, je n'ai normalement pas besoin de plus de 3 valeurs par lettres. Je posais surtout la question de savoir si on pouvait changer ces valeurs !

Cependant pour celui qui aurait de plus grands besoins, ou peut-être moi dans quelques temps, c'est intéressant de savoir que c'est possible.

J'ai hâte de voir le décryptage des formules ! Merci !!! :p

Florent.
 

abcd

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Bonjour,

Avec un peu de retard !

Pour l'explication des formules voir l'onglet "formules".
J'espère avoir été clair (plus facile d'écrire une formule que de l'expliquer !)
Si ce n'était le cas, toujours à ta disposition.

abcd

Edition :
Je viens de m'apercevoir qu'il y a une petite erreur dans le tableau annexe.
Sélectionner D17:H17 et tirer vers le bas.
 

Pièces jointes

  • florent V7.zip
    23.1 KB · Affichages: 41
Dernière édition:

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Bonjour,

Avec un peu de retard !

Pour l'explication des formules voir l'onglet "formules".
J'espère avoir été clair (plus facile d'écrire une formule que de l'expliquer !)
Si ce n'était le cas, toujours à ta disposition.

abcd

Edition :
Je viens de m'apercevoir qu'il y a une petite erreur dans le tableau annexe.
Sélectionner D17:H17 et tirer vers le bas.
Merci pour l'explication !!! Pour la formule en G5, il fallait vraiment être expert, bravo pour la technique ! ;)
Je pense que les formules pour récupérer des données pourront me servir ailleurs, c'est très bon à savoir !

Bonne journée à toi !

Florent.
 

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Bonjour à tous,

C-joint une dernière version de la solution macro avec les modifs suivantes:

* Cellule de saisie de l'ensemble des lettres
* La somme des chiffres est calculée dans la macro, donc plus de formule somme.
* Le nombre de fois où chaque lettre est sélectionnée apparaît dans la colonne E.
* J'ai intégré la MFC de abcd pour afficher en bleu clair les lettres sélectionnées.

Pratiquant autant les formules que le VBA, je pense qu'il ne faut pas les opposer mais que chacun présente des avantages selon le contexte. Dans ce cas, la macro me semble simplement mieux adaptée.


@+

Gael

Re,

Comme on a pu le constater tout au long du fil, on arrive vite à un nombre de combinaisons élevée pour peu que l'on choisisse plusieurs fois des lettres avec 3 valeurs chacune. mais tout dépend du nombre de lettres maximal. pour l'instant la macro va jusqu'à 15 lettres et s'arrête si le nombre de combinaisons dépasse la feuille.

Sinon, tu peux mettre n'importe quelle valeur dans la limite de 3 valeurs numériques par lettre (mais si tu veux en mettre plus, c'est très facile à modifier).

@+

Gael

Bonjour Gael et à tous,

Je relance le sujet près de 6 mois après... La macro Florent_Macro_V1.xls (42,5 Ko) accessible directement en cliquant sur le lien menant au premier message cité ci-dessus, répond à tous mes besoins et m'a été vraiment utile. Mais, aux fins de tests, j'ai finalement besoin d'augmenter le nombre de valeur possibles par lettre. C'est très facile à modifier, mais n'y connaissant rien en programmation, pas forcément pour moi ! :)

Quelle modification faut-il faire si je souhaite pouvoir mettre 4 valeurs numériques par lettre au lieu de 3 ???

MERCI d'avance !
 
Dernière édition:

Gael

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Bonsoir Florent,

Pas toujours facile de reprendre une macro après quelques semaines :eek:

Ci-joint un essai avec 4 valeurs numériques.

Dis-moi si c'est OK.

@+

Gael
 

Pièces jointes

  • Florent_Macro_V2.xls
    41.5 KB · Affichages: 39

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

C'est parfait !!! :p Merci pour la rapidité, surtout comme tu le dis que ce n'est pas forcément évident de se remettre dedans...

Pendant que j'ai pu te remettre tout cela en tête, je te soumets une petite amélioration à apporter à la macro et qui me ferait gagner vraiment beaucoup de temps dans ma recherche car les tableaux de chiffres obtenus sont parfois immenses. Peut-être le seraient-il considérablement moins ainsi...

A l'usage, je me suis rendu compte que je n'ai pas besoin de connaître les possibilités qui sont de vrais doublons, c'est à dire qui aboutissent aux mêmes sommes par le simple truchement de la même lettre exprimée plusieurs fois (et non par le hasard des calculs sur des lettres différentes).

Je m'explique :
si A vaut 1 ou 50

et que l'on considère le "mot" AAA

On obtient 8 solutions :

50 50 50 =150
1 50 50 =101
50 1 50 =101
50 50 1 =101
1 1 50 =52
1 50 1 =52
50 1 1 =52
1 1 1 =3

Seules les 4 solutions que j'ai affiché en rouge m'intéressent réellement. Les autres perturbent la lecture et ne sont que la même information présentée différemment.

Le problème se reproduit chaque fois que j'ai un "mot" qui comporte plusieurs fois la même lettre. Est-il possible de retirer ces doublons du résultat final ?

Merci par avance !!!
Florent.
 
Dernière édition:

Gael

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Re,

Ci-joint un exemple avec suppression des doublons.

Attention: Tous les doublons sont supprimés même si les chiffres proviennent de lettres différentes.


@+

Gael
 

Pièces jointes

  • Florent_Macro_V3.xls
    43.5 KB · Affichages: 39

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Merci !!! :p Je crois qu'il s'agit bien de ça...

Que veux-tu dire par tous les doublons sont supprimés même si ils proviennent de lettre différentes ? Tu as un exemple, car vu que là c'est retiré, j'ai du mal à comprendre ???

Ici en tout cas, dans l'exemple que tu envoie, on retrouve bien 220 en double, mais vu que ce n'est pas par la simple interversion des mêmes valeurs, mais par des chiffres différents, c'est très bien que les deux calculs soient présents et c'est exactement ce qu'il me faut !

A C E Somme
50 120 70 240
50 100 70 220
50 120 50 220

50 100 50 200
 

Gael

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Re,


Que veux-tu dire par tous les doublons sont supprimés même si ils proviennent de lettre différentes ?

Je veux dire que si tu trouves la même combinaison de chiffres avec AA ou BC, elle sera supprimée de la même façon. A priori cela n'arrive que s'il y a plusieurs chiffres identiques dans des lettres différentes.

Sinon, la macro ne tient jamais compte de la somme mais seulement des chiffres présents dans la combinaison.

@+

Gael
 

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Je crois que j'ai compris :

E vaut 5 ou 10 ou 50 ou 70
S vaut 5 ou 10

On obtient :
E S Somme
70 10 80
70 5 75
50 10 60
50 5 55
10 10 20
5 10 15
5 5 10


Il nous manque :
10 5 15

Effectivement, c'est un problème dans ce cas précis, car il ne s'agit pas de la même valeur d'une lettre doublée et dont la position varierait dans les résultats, mais bien de deux valeurs attribuées à deux lettres différentes.

Cela n'arrive en effet que s'il y a plusieurs chiffres identiques dans des lettres différentes : c'est malheureusement mon cas !

Est-ce qu'il est possible de conditionner le retrait des doublons au fait qu'ils proviennent de la même lettre ?
 
Dernière édition:

florent.76

XLDnaute Nouveau
Re : Afficher toute les solutions d'une somme variable

Bonjour Gaël,

Si ce n'est pas possible, fait le moi savoir, je me débrouillerai comme ça, c'est vraiment un moindre mal... La réduction des doublons en plus de tout le reste, c'est déjà énorme pour le travail que j'ai à faire et je t'en remercie encore. :p

Belle journée à toi !
 

Gael

XLDnaute Barbatruc
Re : Afficher toute les solutions d'une somme variable

Bonjour Florent, bonjour à tous,

Pour la comparaison des doublons, j'ai intégré le n° de la lettre correspondante par exemple:

Pour le code AAC, on aura la séquence 1, 50, 3 puis 50, 1, 3 ces deux séquences seront transformées en:

11, 33, 150 (en premier caractère, le n° de la lettre soit 1 pour A et 3 pour C). Ce code sera présent 2 fois donc le doublon sera éliminé car provenant des mêmes lettres.

Mais si A a comme séquence 1, 50 et I de même, Le mot AI aura comme résultat A1,I50 et aussi I1, A50 qui seront transformées en:

11, 950 et 91, 150 et donc ne seront pas considérées comme doublons et conservées dans le résultat.

Cela devrait correspondre à tes attentes, mais fais quelques tests plus précis et confirme-moi.

@+

Gael
 

Pièces jointes

  • Florent_Macro_V4.xls
    43 KB · Affichages: 37
  • Florent_Macro_V4.xls
    43 KB · Affichages: 40
  • Florent_Macro_V4.xls
    43 KB · Affichages: 39

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 860
Membres
103 005
dernier inscrit
gilles.hery