Calcul d'une somme maximale dans un tableau

Bonjour

J'ai un tableau de 13x13. Dans ce tableau, chaque colonne représente une épreuve et chaque ligne un participant.Dans chaque épreuve, chaque participant obtient un nombre de points.

Dans le but de constituer la meilleure équipe, il faut déterminer quelle score maximale peut faire l'équipe, sachant qu'un seul participant ne peut faire qu'une épreuve.

J'ai fait un petit fichier qui résume mon problème, mais en simplifié (3 épreuves/3 participants) -> https://www.excel-pratique.com/~files/doc/Max.xlsx

Avec 13 épreuves, le nombre de combinaison possible est trop énorme et je me retrouve avec des fichiers de taille impressionnante.

Si le calcul pouvait se faire par une macro, ça serait plus simple (mais étant débutant dans ce domaine, je n'ai pas encore trouvé la solution)

Si vous avez besoin de plus d'informations, je suis à disposition

Merci d'avance

Bonjour lk et bienvenue,

Peux-tu enregistrer ton fichier au format Excel 2003 et le rejoindre.

La version 2007 n'est pas encore très répandue et cela réduit tes chances d'avoir une réponse.

A te (re)lire

@+

Bonjour lk et bienvenue, salut Thibo,

Un problème assez intéressant, mais dans quel sens le prendre ?

Le tableau exemple est très bien choisi, puisqu'il montre qu'il ne suffit pas de prendre le meilleur résultat d'une personne ou d'une discipline pour arriver à la somme max...

Ci-joint pour les motivés le fichier en format 2003 : https://www.excel-pratique.com/~files/doc/Poh1bMax.xls

Bonjour,

Merci pour le fichier compatible 2003 SylvainTBM...

En effet, problème intéressant. Reste une question pour y voir un peu plus clair. Que doit retourner ne résultat ? Le nom d'un joueur, le total maximum possible ? ou autre chose encore ? Une donnée sans laquelle il est impossible d'avancer.

Cordialement,

Bonjour tous,

En l'absence de réponse de LK, je reviens sur ce problème qui m'interpelle un peu.

Voilà le code que je propose pour le fichier exemple de 3x3, qui semble fonctionner, sans toutefois me satisfaire vu la lourdeur de la mise en place pour un tableau 13x13...

A mesure qu'on trouve des résultats max on colorie les nombres qui y contribuent en rouge.

Au final on indique la somme max en C5 (on pourrait aussi la mettre à chaque fois pour ceux qui veulent faire des simulations pas par pas...)

Avant d'aller plus loin quelqu'un aurait-il une piste plus facile à suivre, où verrait-il une faille dans ce principe là ? (jmd ? )

Le code :

Sub calcul()
Dim i As Byte, j As Byte, k As Byte
Dim max As Integer, somme As Integer

For i = 2 To 4
    For j = 2 To 4
        If j <> i Then
            For k = 2 To 4
                If k <> i And k <> j Then
                somme = Cells(2, i) + Cells(3, j) + Cells(4, k)
                    If somme > max Then
                    max = somme
                    Range("B2:D4").Font.ColorIndex = 0
                    Cells(2, i).Font.ColorIndex = 3
                    Cells(3, j).Font.ColorIndex = 3
                    Cells(4, k).Font.ColorIndex = 3
                    End If
                End If
            Next k
        End If
    Next j
Next i
[C5] = max
End Sub

Salut le forum

Sur sur un tableau de 13 par 13, le temps de calcul surement très long.

Il faut donner les vrais bases afin de travailler

Mytå

Merci à tous de vos réponses et solutions

Désolé du délai, mais week-end ensoleillé rime avec loin du PC 8)

Plus sérieusement, pour répondre à V_Elbie, il faudrait qu'au final le tableau me donne la combinaison optimum participant-épreuve sur les 5 premiers résultats (il existe des cas particuliers où on peut obtenir le même résultat suivant les combinaisons possibles) ainsi que la somme maximum.

J'ai essayé de faire un code VB pour trouver une solution, mais je suis trop novice dans ce domaine pour y arriver (pour le moment en tout cas).

Je trouve que la solution de Sylvain TBM est bien avancée et elle m'a permis de remarquer que j'ai oublié de mettre un autre cas particulier, le cas de double solution (ou plus).

Voici donc le fichier joint avec une double solution (et je l'ai remis en 2003 )

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

7classeur2-1.xlsx (107.43 Ko)

Je crois que les doublons compliquent la tâche...

En attendant d'autres réactions/réponses, Sylvain TBM, pourrais-tu mettre un fichier excel avec ton code, que je puisse voir comment ça marche?

Merci d'avance

Salut le forum

Attention à vos yeux, une macro résursive trouvée sur le site de John Walkenbach,

et adapter sur le fichier pour trouver une somme maximale avec permutaions.

https://www.excel-pratique.com/~files/doc/TrouveMax_V1.5.zip

Le temps de traitement sur un tableau de 13 par 13, risque d'être long....

J'ai donc inclus in tableau de 8 par 8.

Mytå

(Qui n'avais rien à faire ce soir.)

Merci beaucoup

Encore 1 autre moyen à étudier pour l'appliquer à mon cas précis (1 peu + compliqué que ce que je vous ai expliqué) et surtout comprendre comment ça marche ^^

Salut le forum

LK, tu m'as fait travailler pour rien, si c'est pas la situation de base.

Question similiaire sur un autre forum....

Tu demandais un tableau de 13 par 13 au début, facile de modifie ma solution....

Mais, si il faut deviner la forme te ton nouveau tableau alors la .... un exemple

Mytå

Non, car la situation que je donne est une étape de la solution (D'ailleurs, l'étape où je bloque)

Mais si tu veux le postulat total de départ, le voici:

J'ai un groupe de 10 participants qui doivent faire 13 épreuves. Chaque participant participe à 1 épreuve et seulement 3 peuvent participer à 2 épreuves.

Cette donnée supplémentaire ajoutant à la difficulté de trouver la somme maximale d'un tableau 13x13, je ne vous l'ai pas précisé, je me débrouillerais pour l'inclure par la suite.

Donc, tu n'as pas travaillé pour rien, je te rassure. D'ailleurs, j'essaye toujours de comprendre comment fonctionne la macro ^^

Re le forum

C'est bien se que je pensais, plus la même question qu'au début.

Alors pas de fichier pour comprendre [Délestage] de ma pariticipation.

Meilleur chance aux autres dans ta solution.

Mytå

Salut

Désolé que tu le prennes comme ça, mais j'ai exposé le problème que j'avais en occultant volontairement des points que je ne pensais pas aussi important pour trouver la solution. De plus, cela compliquait encore plus le problème que j'avais déjà.

Ce n'est qu'en voyant vos différentes solutions et en les expérimentant que je me vois obliger d'ajouter des données que je ne pensais pas essentielles au départ (et surtout je ne soupçonnais rencontrer des cas particuliers spéciaux)

En tout cas, merci pour ta participation et ta proposition de solution.

Re le forum

LK, j'essaye de lire tes messages, mais je ne suis pas en mesure de comprendre.

LK a écrit :

J'ai un groupe de 10 participants qui doivent faire 13 épreuves. Chaque participant participe à 1 épreuve et seulement 3 peuvent participer à 2 épreuves.

As-tu un tableau exemple disons avec 4 Participants et 6 Épreuves ?

J'essaye de m'imaginer la disposition et le principe ....

Losque tu parles d'épreuves, c'est toujours la même épreuve(cours à pied) ou

des épreuves toutes différentes(natation, cyclisme, plongeon...) ?

A te relire

Mytå

Salut

Voici ma table de base :

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

Voici ensuite un exemple de 4 participants pour 6 épreuves avec la solution :

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

Pour arriver à ce résultat, j'ai utilisé la solution proposée par Sylvain TBM, en la montant pour un tableau 6x6 et en choisissant moi-même les 2 nageurs qui nagent 2 fois.

En ce qui concerne les épreuves, ce sont toutes des nages différentes pour un même sport : la natation.

Sinon, j'ai aussi fait la solution proposée par Sylvain TBM, en la montant pour un tableau 13x13, sauf que ça plante au bout d'un certain moment. PC pas assez puissant, erreur de programmation, je ne sais pas. Voici le fichier

https://www.excel-pratique.com/~files/doc/Maximum.xlsm

Salut à tous,

De retour d'une semaine en Espagne, ça fait du bien de retrouver le pc...

Je vois que vous avez avancé un peu sur le sujet (et changé les règles... ).

J'en avait touché un mot à mon frangin avant de partir, voilà ce qu'il m'a renvoyé entretemps : Max_2

Constantes vba à adapter à ton fichier de base.

Par contre j'ai pas encore trop regardé mais pour le coup des nageurs qui participent 2 fois ça risque d'être plus compliqué. D'abord essayer de comprendre ce code

Durée du traitement chez moi : environ 6 secondes en 9x9

Slt

Après essais, la solution de ton tableau en 9x9 est plus rapide que la mienne.

Sur mon pc, ta solution est aussi donnée en 6s

Pour un tableau 10x10, ça monte à 1min (60s)

J'ai pas encore fait le test pour un 11x11, mais si c'est encore 10 fois plus, ça va commencer à mettre du temps

bonjour à tous,

je viens de m'inscrire car j'ai trouvé ici le début d'une solution a un probleme qui me bloque depuis un certain temps.

Je cherche également a trouvé une somme maximal d'un tableau à 17 lignes et 11 colonnes...

ça fait 494 010 316 800 calculs à effectuer !!

Ma question est de savoir si c'est envisageable ou si la somme de calcul peut empêcher un tel projet d'aboutir.

je ne suis qu'un novice sur excel et je ne connais pas les limites de ce programme.

Amicalement,

pull

edit : je déterre un vieux sujet en fait, faudrait que j'essaye de chercher si un sujet plus récent existe...

Comme je ne maitrise pas excel, je ne connais pas les termes à utiliser ^^

bonjour je viens vers vous pour savoir si le tableau fonctionne simplement avec 4 personnes sur 4 épreuves, ensuite comment fait on pour avoir le tableau sur 10 épreuves dans ma pratique sportive besoin de 10 épreuves et non 8, je vous remercie par avance de votre aide bonne journée

Rechercher des sujets similaires à "calcul somme maximale tableau"