Générer une liste de combinaisons

  • Initiateur de la discussion Initiateur de la discussion nohrad
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 🙂
 
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:
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

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

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

Dernière édition:
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.😀
 
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

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+
 
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
 
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+
 
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
755
Retour