Générer une liste de combinaisons

nohrad

XLDnaute Nouveau
Bonjour,

J'ai un classeur Excel avec trois feuilles. Chacune de ses feuilles comprend une liste d'identifiants en première colonne sous forme "AAA" ou "A00". L'objectif est de pouvoir générer automatiquement dans une quatrième feuille l'ensemble des combinaisons d'identifiants de la forme "AAA-BBB-CCC" (AAA, identifiants du feuillet 1, BBB = feuillet 2, CCC = feuillet 3).

J'ai pensé à faire une boucle en VBA mais j'avoue que je suis un peu perdu.

Si quelqu'un peut m'aider ???

Merci :)
 

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Bonjour nohrad, salut Bernard,

Si l'ordre des identifiants n'a pas d'importance dans les résultats en 4ème feuille, il s'agit bien de combinaisons.
Si par contre l'ordre des identifiants a de l'importance dans les résultats, il s'agit d'arrangements, il y en a 6 fois plus, et la durée du traitement sera donc très augmentée.

Merci de confirmer.

A+
 
Dernière édition:

nohrad

XLDnaute Nouveau
Re : Générer une liste de combinaisons

Hello,

Bon je ne suis pas certains de bien voir la différence entre combinaison et arrangement, mais je dirais qu'il s'agit de la combinaison des éléments de trois ensembles distincts. J'ai joint un modèle de doc pour mieux se rendre compte de quoi il s'agit.

Merci
 

Pièces jointes

  • Modele.xls
    20 KB · Affichages: 346
  • Modele.xls
    20 KB · Affichages: 362
  • Modele.xls
    20 KB · Affichages: 360

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Re,

J'ai finalement fait les 2 possibilités.

Pour les combinaisons 3 boucles For (une par feuille).

Pour les arrangements, 6 x 3 boucles For.

La durée du calcul pourra être diminuée en stockant les valeurs dans des tableaux avant de les copier dans la feuille. Je ne l'ai pas encore fait.

A+
 

Pièces jointes

  • Combinaisons 3 feuilles (1).zip
    11.7 KB · Affichages: 261
  • Combinaisons 3 feuilles (1).zip
    11.7 KB · Affichages: 267
  • Combinaisons 3 feuilles (1).zip
    11.7 KB · Affichages: 281
  • Arrangements 3 feuilles (1).zip
    12.4 KB · Affichages: 168

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Re,

Maintenant avec un tableau pour stocker les valeurs, la durée du calcul est réduite de :

- 49% pour les combinaisons (durée 1,01 s sur mon ordi)

- 31% pour les arrangements (durée 13,15 s).

Ce n'est pas mal mais j'espérai mieux.

Bonne nuit.

A+
 

Pièces jointes

  • Combinaisons 3 feuilles (2).zip
    11.8 KB · Affichages: 124
  • Arrangements 3 feuilles (2).zip
    12.9 KB · Affichages: 93
Dernière édition:

13GIBE59

XLDnaute Accro
Re : Générer une liste de combinaisons

Bonjour à tous.

Juste pour éclaicir les choses :

- combinaisons : l'ordre du tirage n'a aucune importance. Ex : loto.
- arrangements : l'ordre du tirage est pris en compte. Ex : tiercé.

Il y a donc toujours plus d'arrangements que de combinaisons à partir d'un même lot.

CQFD.:D
 

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Bonjour le fil, le forum, un petit coucou à Jean-Bernard,

J'ai amélioré les performances en utilisant des tableaux dynamiques (redimensionnés régulièrement). Le gain par rapport à la version (1) devient conséquent :

- pour les combinaisons 59% (0,82 s)

- pour les arrangements 38% (11,74 s)

De plus j'utilise un tableau transposé (remplissage par ligne) et la feuille est donc mieux utilisée.

A+
 

Pièces jointes

  • Combinaisons 3 feuilles (3).zip
    11.2 KB · Affichages: 137
  • Arrangements 3 feuilles (3).zip
    13 KB · Affichages: 114

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Salut Papou,

Mon ordi est un 2 Ghz, mais il va avoir 3 ans...

Je me suis amusé à détailler le temps de traitement pour les arrangements :

- traitement des 3 boucles ....... 3,25 s
- copie du tableau sur la feuille...8,50 s

A+
 

Looolo76

XLDnaute Nouveau
Re : Générer une liste de combinaisons

Bonjour à tous,

Je me permets de relancer cette discussion qui date tout de même un pe:)

J'ai exactement le même besoin que Nohrad.

La seule différence est qu'au lieu de souhaiter générer les combinaisons à partir de 3 listes, je souhaite en générer à partir de 4 , voire 5 ou plus
Je n'y connais rien en macro..mais peut-on, à partir de la macro programmée par job75, la modifier pour pouvoir faire le traitement sur un autre nombre de listes?

Merci d'avance pour votre aide
Laurent
 

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Bonsoir Looolo76,

Je vous avais conseillé par MP d'être clair et précis si vous vouliez des réponses.

De quoi s'agit-il, de combinaisons ou d'arrangements ? La différence a été clairement expliquée sur ce fil.

Quant à ceci :

La seule différence est qu'au lieu de souhaiter générer les combinaisons à partir de 3 listes, je souhaite en générer à partir de 4 , voire 5 ou plus

on ne fait pas joujou n'importe comment avec les combinaisons ou les arrangements, car leur nombre augmente exponentiellement et peut dépasser rapidement les possibilités des machines, que ce soit en durée de calcul ou en capacité de stockage.

Si vous regardez 30 secondes les fichiers que j'ai déposés ici, vous verrez que les 3 listes contiennent peu d'éléments : 40+30+20, et ça prend tout de même du temps.

Enfin montrez-nous votre fichier, on vous dira s'il est possible de faire quelque chose.

A+
 

job75

XLDnaute Barbatruc
Re : Générer une liste de combinaisons

Re,

Puisqu'on repasse par là, j'en profite pour améliorer les macros des 2 fichiers.

Au lieu d'étudier les 3 plages de cellules, on étudie 3 tableaux avec leurs valeurs.

Combinaisons => 0,38 s
Arrangements => 9,00 s

J'étais un peu jeune à l'époque :)

A+
 

Pièces jointes

  • Combinaisons 3 feuilles (4).zip
    11.2 KB · Affichages: 123
  • Combinaisons 3 feuilles (4).zip
    11.2 KB · Affichages: 130
  • Combinaisons 3 feuilles (4).zip
    11.2 KB · Affichages: 123
  • Arrangements 3 feuilles (4).zip
    12.8 KB · Affichages: 112

Looolo76

XLDnaute Nouveau
Re : Générer une liste de combinaisons

Merci de votre réponse job75

Désolé, j'avais pourtant essayé d'être clair, pas assez manifestement :)

Il s'agit bien de combinaisons (et non arrangements).
Par ailleurs je devrais avoir besoin de 5 ou 6 listes à combiner (au max).
dont une seule très longue (200 termes environ).
ci-joint un exemple de fichier.
effectivement on arrive à des nombres astronomiques de combinaison.
le délai de traitement n'est pour moi pas un facteur grave.

Voilà, à votre disposition pour plus de précision si nécessaire.

Bonne soirée
Merci!
Laurent
 

Pièces jointes

  • Combinaisons 3 feuilles (1).zip
    16.9 KB · Affichages: 125
  • Combinaisons 3 feuilles (1).zip
    16.9 KB · Affichages: 120
  • Combinaisons 3 feuilles (1).zip
    16.9 KB · Affichages: 122

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon