Générer des combinaisons

Bonjour !

Voici une seconde question (aujourd'hui) beaucoup plus technique et difficile à mon avis...

Je fais du sport et je voudrais créer une feuille excel de calcul automatique d'équipe... Je m'explique....

But : Il faut composer des équipes de 5 personnes à partir de tous les athlètes d'un club (pour l'exemple nous fixerons arbitrairement le nombre de licenciés à 16 personnes). Dans cet exemple nous aurons donc 3 équipes.

Le but est de créer l'équipe 1 la plus forte possible. Parmi les 11 athlètes restants, l'équipe 2 devra aussi etre la plus forte etc jusqu'à l'équipe 3...

Comment déterminer la meilleure équipe : Chaque personne à un score en points et un handicap (positif ou négatif). Le score de l'équipe se calcul ainsi : Somme des scores - Somme des handicap (uniquement si la somme des handicap est positif).

De manière à etre plus clair, vous trouverez sur mon compte free une feuille d'exemple avec 6 athlètes et les différentes combinaison d'équipes possibles (soit 6 équipes). cet exemple est très simple mais pour 16 athlètes, il y a : 4368 équipes possible pour générer l'équipe 1... Après il reste 11 athlètes pour générer l'équipe 2 soit cette fois 462 équipes possibles. L'équipe 3 sera detreminer parmi les 6 derniers athlètes soit 6 possibilité...

N'ésitez pas à me poser des questions si je n'ai pas été suffisament clair.

Merci d'avance

David

Fichier disponible ici :

Bonsoir,

J'ai "jeté un Oeuil" comme on dit mais :

Je ne comprend pas 16 personnes pour des équipes de 5 = 3 équipes reste 1 (aller le remplacent) . Trouver les 5 plus for, puis les 5 suivant ... OK

Cela se corse pour

6 athlètes et les différentes combinaison d'équipes possibles (soit 6 équipes). ! ?

Nous ne sommes plus dans le cas précédent

que dire de :

16 athlètes, il y a : 4368 équipes possible pour générer l'équipe 1. ? !

Puis

Après il reste 11 athlètes pour générer l'équipe 2 soit cette fois 462 équipes possibles. L'équipe 3 sera detreminer parmi les 6 derniers athlètes soit 6 possibilité...

Là je décroche completement

J'ai loupé quelque chose ..!

Cordialement

Alain

Non vous ne decrocher pas du tout... J'aimerais que vous m'aidiez à faire cela sur un club de 16 personnes (donc 4368 possibilités puis 462 puis 6)...

Moi j'ai joint un exemple pour 6 personnes car quand on fiat cela pour 6 personnes il n'y a que 6 équipes. C'était pour l'exemple, pour la méthode du calcul des points...

En somme je voudrais un code qui fasse cela pour "n" membres d'un club. J'avais fixé cela à 16 hier parce que cela générait 3 passe de calcul et 1 mec en remplacant comme vous l'avez tres bien dit... Mais demain, on pourrait etre 20 dans le club, ou 22, ou 31...

PS : on ne sera jamais 200 car le club n'a jamais dépassé 37 personnes...

Bonjour

Avec le Code de Thierry Pourtier dont je t'envoie le fichier sur les combinaisons, nous pouvons facilement résoudre ton problème sur 6 joueurs.

Par contre, celui-ci devient facilement irréalisable si le nombre de joueurs augmente.

En effet, le nombre de combinaisons possibles s'accroit de façon exponentielle avec le nombre de joueurs.

Ce nombre de combinaisons est donné par la fonction Excel COMBIN(Nombre_'élélents; Nb_éléments choisis)

Ainsi, pour 6 joueurs par équipes de 5, COMBIN(6;5) renvoie 6

pour 10 joueurs, COMBIN(10;5) renvoie 252 et c'est encore faisable

pour 30 joueurs, COMBIN (30;5) renvoie 142506, c'est déjà hors de portée

et pour tes 37 joueurs, COMBIN (37;5) donne 435897, ce qui n'est pas réalisable!

Fichier joint:

https://www.excel-pratique.com/~files/doc/CombinaisonsRetour.xls

ordialement

C'est pas mal du tout comme code cela...

Quand vous dites hors de porté, c'est relatif au nombre de ligne de la matrice ou au temps de cacul...

Je vais essayer de construire la matrice avec 25 personnes, la laisser "vide" pour voir... J'essaie de manipuler et "jouer" avec les posibilités et je reviens vers vous très bientot pour améliorer ou integrer ce code ailleurs

Merci encore

Bonjour

J'avais envisagé au départ de t'envoyer une matrice sur 10 joueurs, mais déjà avec 6, la limite des 100 Ko imposée sur le site est atteinte.

Quand je parle de difficultés, je fais allusion à la mémoire système qui va être fortement sollicitée car pour 25 joueurs cela fait plus de 53000 combinaisons.

Je te conseille de remplacer la formule du fichier exemple en ajoutant les paramétres de début et de fin, comme l'indique l'auteur du Code, sinon, le risque de blocage du système est évident (Tout dépends aussi de ta machine..)

Cordialement

Je suis en train d'integrer ce code dans ma feuille Excel, et j'aimerais savoir :

Comment pourrais je faire pour transposer d'un tableau à l'autre automatiquement des valeurs en mettant en place des "1" et "0" de validation...

Je m'explique : parmi 20 membres du club j'en selectionne 10 (en mettant 1 ou zero dans une case proche du nom...

Le but de cette selection est d'isoler les athlètes du club qui feront la competition de ceux qui ne la feront pas... Après cette selection, je lance le calcul des équipes et definit les plus optimales...

Bonsoir

Si je comprends bien, il s'agit de faire une pré-sélection "arbitraire" des joueurs.

J'ai ajouté 3 joueurs colonne I (I10:I12), rajouté colonne M (Présélection) une validation 1 ou 0, et colonne N, la formule qui renvoie le numéro correspondant au joueur dont la pré-sélection est 1.

Colonne B, les numéros des joueurs sont récupérés par la formule PETITE.VALEUR.

Les autres formules de recherches sont modifiées uniquement pour être adaptées au nouveau champ de recherche.

Cela répond-il à ta question ?

Fichier exemple joint

https://www.excel-pratique.com/~files/doc/CombinaisonsRetourV2.xls

Cordialement

Bonjour David, bonjour le forum

Les meilleures équipes sont obligatoirement formées des meilleurs joueurs. Ainsi, pour définir le rang du joueur, il suffit de soustraire le handicap aux points gagnés uniquement s'il est positif. On obtient ainsi un total par joueur que l'on peut trier simplement dans l'ordre décroissant.

En prenant les 5 meilleurs joueurs on forme la meilleure équipe et on recalcule le score de l'équipe, puis on forme la seconde avec les 5 suivants, etc ...

Des joueurs avec le même total pourront être échangés d'une équipe à l'autre.

C'est très simple et ça marche très bien. Tu peux essayer toutes les combinaisons que tu veux, tu arriveras toujours à ce résultat.

https://www.excel-pratique.com/~files/doc/Formation_d_equipe.xls

Meilleures salutations à tous

Daniel

Je crois que j'ai induit Dan et vous tous en erreur avec mes points et handicap... Je recommence à zero pour etre tres clair

Le sport est l'halterophilie...

Chaque athlète possede un "total" (qui est la somme du meilleur score à "l'arraché" et à l"épaulé jeté".

Chaque athlète fait un poids donné

Le score de l'équipe c'est la somme des "totaux" moins la somme des "poids des athlètes". Mais attention, lorsque la poids de l'équipe dépasse 375 Kg (5x75), on majore le poids de l'équipe de la différence du poids de l'équipe et de 375 Kg....

Ou la la vous me direz mais je donne un exemple : Si la somme des poids des 5 athlètes fait 400, alors on doit retrancher on total de l'équipe : 400 + (400-375) = 425 Kg !

Pour simplifier le raisonnement sous excel j'avais traduit cela sous forme de Points et handicap...

Les points étant le total de l'athlète moins 75 Kg

Le handicap étant le poids de l'athlète moins 75 Kg

C'est pas évident mais c'est comme cela... Du coup la technique de Dan me semble pas très logique. Je sens quelque chose qui cloche... J'y reflechit et je reposte

Salut le forum

Oufs et demain, tu rajoutes quelle contrainte....

Un problème mal posé, va apporter plein de fausses solutions.

A toi de bien définir ton problème avec un début de réponse

Mytå

Pas forcément mal posé car la solution de Dan semble pas mal...

Il faut juste la valider, non pas "mathématiquement" mais "logiquement"...

Je m'explique : Peut on etre sur de ce que Dan a écris ou cette méthode peut entrainer des erreur dans le cas ou :

L'expression de total pur + handicap puis classement classe l'athlète tout seul parmi les autre sans prendre en condideration que ce handicap puisse etre reparti sur celui de l'équipe (5 autres handicaps) pour une valeur de 375 Kg...

Voua, pas facile à lire et à comprendre mais c'est cela donc

Bonjour

Effectivement, avec tes explications, ma solution, n'est pas forcément valable dans tous les cas.

Maintenant que l'exposé est plus clair, je vais réfléchir à une solution plus complexe. Il doit exister une formule mathématique qui permette de trouver les meilleures équipes.

A bientôt

Dan

Bonjour David, bonjour le forum

Je t'avais promis de trouver une solution à ton problème, Eh bien, la voilà enfin.

Je l'ai faite sous forme de marco. En gros, je compose une équipe de base, puis je regarde le score si je remplaçais un athlète de l'équipe par un autre. Si le score est plus élevé, je place le nouvel athlète dans l'équipe de base.

Après avoir composé toutes les équipes, les scores sont affichés.

https://www.excel-pratique.com/~files/doc/aBWi2Formation_d_equipe.xls

En espérant avoir répondu à ton problème, meilleures salutations

Dan

Impressionnant !!! Ca répond totalement au problème. Le calcul est rapide (quelques secondes) et on peut ajouter ou enlever des athlètes...

J'espère que tu n'auras pas passer top de temps sur ce problème...

Je te montrerai l'intégration du code à notre fichier athlète (en inscrirai ton nom)

PS : Y-a-t-il un code à copier pour changer de feuille ou la macro est transposable simplement ?

Bonjour David

Pour changer de fichier, il faut transporter les 2 macros de 'module1'. Les autres n'étaient que des essais. Et tu auras remarqué que la macro 'FormationEquipe' appelle la macro 'EvalEquipe' qui s'appelle elle-même un certain nombre de fois en fonction du nombre de personnes par équipe.

Ensuite, il faut faire attention aux noms dans la feuille Excel, car ils sont autant de points de repères dans les macros pour aller chercher les données. Et pour finir, les emplacements des titres pour chaque équipe sont également importants, car ils sont fixés dans les macro à partir du nom 'Equipe'.

Maintenant, si tu as souci pour adapter toi-même ces macros dans ton nouveau fichier, je veux bien te donner un coup de main. Envoie le moi par mail, je te le retournerai corrigé.

Meileures salutations

A+

Daniel

Rechercher des sujets similaires à "generer combinaisons"