Générer des combinaisons avec filtres de limitation

Bonsoir à tous,

J'ai effectué des recherches préalables mais je ne maîtrise pas Excel au-delà d'une utilisation disons moyenne, et je n'ai pas trouvé de solution exacte qui réponde à l'intégralité de mon problème.

J'ai une feuille avec plusieurs cellules avec variables : c'est un listing des joueurs de NBA, avec 3 variables : la franchise, le poste, et une valeur monétaire.

J'aimerais pouvoir générer toutes les combinaisons de 5 joueurs possibles, mais avec des limitations pour réduire le nombre de combinaisons. Les limitations en l'espèce :

> Pas plus de 3 joueurs issus d'une même franchise

> Les postes doivent être respectés dans chaque combinaison : 1 meneur, 2 arrières, 2 intérieurs

> La somme totale des valeurs monétaires des joueurs ne doit pas dépasser un certain montant

Avez-vous une idée de comment procéder ?

Merci !

peux-tu fournir le fichier des joueurs avec leurs caractéristiques

ce serait plus simple pour nous

la solution est de faire du VBA (programmation) ne semble-t-il

Bonjour Guillaud,

Merci de la réponse !

Le fichier est en PJ.

Deux précisions supplémentaires, au cas où :

> Les combinaisons sont sans répétition naturellement

> Idéalement j'aimerais que les combinaisons non valides ne s'affichent pas plutôt qu'elles soient mises en forme différemment (par exemple en rouge), sinon j'ai peur que le fichier devienne compliqué à manipuler en triant entre bonnes et mauvaises combinaisons.

Merci !

50entraineur-nba.xlsx (46.91 Ko)

Bonjour,

je n'ai pas réussi pour l'instant à fabriquer toutes les combinaisons possibles répondant aux critères

il y a 67 508 700,00 combinaisons possibles sans critères!!!!

le fichier que je joins vous permet de créer des équipes répondant aux critères une à une par un simple clic sur un bouton

(dans les critères je distingue Arrière 1 de Arrière 1 et Intérieur 1 de Intérieur 2, autrement dit si j'inverse 2 arrières pour moi ce sont deux équipes différentes)

la semaine prochaine j'essayerai de les fabriquer toutes (je ne suis pas sûr de réussir)

regarder en attendant cette première approche, lire la feuille "explication"

62nba.xlsm (249.85 Ko)

Bonjour Gullaud,

Merci beaucoup pour cette macro, c'est déjà énorme !

J'ai regardé le fichier, et je voulais savoir quel était le critère appliqué dans le fichier que tu m'as envoyé, et comment changer les différents critères ?

dans module1 changer la valeur du montant 100 par celle qui te convient

Public Function valeur_equipe(eq() As Integer) As Boolean

Dim total As Double

Dim i As Integer

total = 0

For i = 0 To 4

total = total + Range("t_joueur[valeur]").Cells(eq(i), 1)

Next i

If total < 100 Then

valeur_equipe = True

Else

valeur_equipe = False

End If

End Function

les conditions sont respectées : pas plu de 3 de la même équipe, maxi de valeur,composition de l'équipe

la seule chose on peut avoir le même équipe (arrière inversés . intérieur1 inversés)

Bonjour Gullaud,

Petite question : comment on pourrait éviter la répétition des séries justement ?

Dans ma tête justement X + Arrière 1 + Arrière 2 + Y + Z = X + Arrière 2 + Arrière 1 + Y + Z (idem avec Intérieur 1 et Intérieur 2 d'ailleurs).

Bonjour,

une autre proposition.

Attention la macro génère toutes les possibilités répondant aux critères de limite de valeur (valeur en H1), de composition(1 meneur, 2 arrières et 2 intérieurs) et d'appartenance à une même franchise (pas plus de 3). Si la valeur H1 est mal choisie le nombre de combinaisons peut exploser ainsi que le temps pour les générer.

38nba.xlsm (26.96 Ko)
Rechercher des sujets similaires à "generer combinaisons filtres limitation"