Ronandinho1
Messages postés4Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention29 novembre 2006
-
28 nov. 2006 à 12:37
Ronandinho1
Messages postés4Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention29 novembre 2006
-
29 nov. 2006 à 12:28
Bonjour,
Je suis en train de réaliser un dossier où j'ai l'intention d'automatiser la gestion d'un tournoi de foot à l'aide de VB sur Excel.
Etant débutant je bloque actuellement pour réaliser un calendrier des matchs par poule . Par exemple :
Equipes : 1 Lyon
2 Lille
3 Lens
4 Sochaux
5 Nancy ....
Il peut y avoir entre 4 et 7 équipes et je voudrais qu'elles s'affontent toutes mais une seule fois càd en match aller seulement. Je ne sais pas quelle(s) instruction(s) utiliser.
Si vous pouviez me donner un petit coup de pouce ce serait sympa
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 nov. 2006 à 13:04
C'est avant tout un algorithme mathématiques :
En d'autres termes :
Trouver toutes les combinaisons possibles de 2 nombres, pris 2 à 2, parmi n nombres.
Ce n'est qu'ensuite que l'on passe à VB...
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 28 nov. 2006 à 13:14
Avec mon coupaing Google, à qui j'ai donné à manger "Algorithme calendrier sportif", je suis tombé sur ce lien qui devrait te donner les bases pour faire ce que tu veux :
Ronandinho1
Messages postés4Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention29 novembre 2006 28 nov. 2006 à 16:43
Merci pour le lien Molenn mais vous allez peut être halluciner mais je bloque.
Voilà ce que j'ai commencé:
Sub calendrier()
Choixmacro = 28 'fait référence à la macro précédentes, doit être modifié si différent
Nbéquipe = (Choixmacro / 4)
Dim Equipe1 As Integer
Dim Equipe2 As Integer
Dim Journées As Integer
Equipe1 = "0"
Equipe2 = "0"
Journées = "0"
Do While Equipe1 < Nbéquipe
Equipe1 = Equipe1 + 1
Equipe2 = Equipe1 + 1
Do While Equipe2 < Nbéquipe + 1
Journée = (Journée + 1) modulo (Nbéquipe - 1)
If Equipe1 <> Journées & Equipe2 <> Journées Then
Equipe2 = Equipe2 + 1
End If
Loop
Loop
End Sub
Je ne comprends pas le terme modulo et ne suis pas sur de bien comprendre la strucure.
Serait il possible de m'indiquer les mots clés par ordre chronologique pour traduire l'algo du lien???
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 29 nov. 2006 à 00:09
En VB, on utilise Mod, plutôt que Modulo
Mod ou Modulo retourne le reste d'un division
10 Mod 2 retourne 0 (10 / 2 = 5 reste 0)
11 Mod 2 retourne 1 (11 / 2 = 5 reste 1)
11 Mod 3 retourne 2 (11 / 3 = 3 reste 2)
Ronandinho1
Messages postés4Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention29 novembre 2006 29 nov. 2006 à 12:28
Je tiens le bon bout!!!
Par contre, l'ordre de mes matchs n'est pas parfait.
Cela donne par exemple:
Equipe1 vs Equipe2
Equipe1 vs Equipe3
Equipe2 vs Equipe3
Equipe1 vs Equipe4
Equipe2 vs Equipe4
Equipe1 vs Equipe5
Equipe2 vs Equipe5
Equipe1 vs Equipe6
Equipe2 vs Equipe6 ...
Equipe1 vs Equipe7
Il faudrait que les équipes jouent les unes après les autres et non comme actuellement où l'équipe 1 a tous ses matchs d'affilés. L'aléatoire n'est pas terrible et il faudrait peut être une boucle mais je n'ai pas encore trouvé comment la faire.
Si vous avez une idée ... !!!