Tirage aléatoire avec contraintes VBA

Bonjour,

Je ne connaît pas le VBA et j'essaye d'effectuer une macro sur Excel qui :

- Effectue un tirage aléatoire de tous les numéros d'équipe inscris dans la colonne A (N° equipe) de la feuille Participants et mettre le résultat du tirage dans la colonne C (Tirage) ;

- Si je rajoute une équipe, la macro doit pouvoir la prendre en compte ;

- La même équipe ne peut pas se rencontrer soit même, exemple : équipe 1 (dans N°équipe) contre équipe 1 (dans Tirage), équipe 2 (dans N°équipe) contre équipe 2 (dans Tirage) ;

- Il ne peut pas y avoir de doublon d'équipe sur un tirage de 5 équipes contre 5 autres (je n'ai que 5 terrains dans mon gymnase, et une équipe ne peut pas jouer sur plusieurs terrains en même temps), exemples :

2020 02 09 15h26 24

(ce n'est pas possible, Youplaboum ne peut pas jouer sur 2 terrains en même temps, à la fois sur le 2 et sur le 4)

(Idem pour YEPyep sur l'image de droite)

J'ai trouvé un script en VBA sur internet et j'ai essayé de le compléter.

Pour l'heure, les 3 premières conditions sont remplies, mais ce script plante aléatoirement Excel au bout de x essais (ça dépend vraiment des fois). Je suis obligé de faire une fin de tâche sur Excel et de rouvrir le fichier.

J'ai essayé de garantir ma 4ème condition avec des ElseIf mais ça plante aussi ou la condition n'est pas remplie.

Pour le moment, j'essaye avec un select case, mais le problème est le même.

Je veux garder le tableau en $E$1:$G$151 car je me sert des données qui sont dedans pour mes formules des autres onglets Matchs et Résultats.

Je souhaite conserver les onglets Matchs et Résultats.

Vous trouverez le fichier Excel avec Macro joint à cette demande.

Par avance, merci beaucoup à celui ou celle qui me dépannera, car j'essaye depuis un bon petit moment sans rien trouver.

Cordialement,

Ezuri

Bonjour,

pas sûr d'avoir compris le rôle de la colonne C, "tirage"

voici comment j'ai compris ta demande,

tu veux pouvoir organiser des matches entre différentes équipes en tenant compte des contraintes suivantes.

  • chaque équipe joue un nombre égal de rencontres (nombre fixé au départ), ce qui pose problème si le nombre d'équipes est impair.
  • 2 mêmes équipes ne peuvent jouer l'une contre l'autre qu'une seule fois.
  • les rencontres se jouent sur 5 terrains différents et une même équipe ne peut pas être occupée sur 2 terrains différents au même moment (même tour)

ai-je bien compris ?

Bonjour,

Voici une proposition.

Alors je n'utilise pas la colonne Tirage. Et la macro remplit directement les colonnes F et G de 5 en 5 si j'ai bien compris.

J'ai donc supprimé les formules dans ces deux colonnes.

Attention, si tu souhaites supprimer la colonne tirage, cela va décaler la macro, il faudra modifier la macro...

N'hésites pas à me dire si cela ne correspond pas tout à fait à ton besoin.

Bonjour à tous les 2,

Merci de m'avoir répondu aussi rapidement.

h2so4 :

La colonne C me servait à stocker mon tirage puis je "transformais" ensuite ces chiffres en nom d'équipes dans le tableau d'à coté.

Chaque équipe ne va pas forcément jouer le même nombre de matchs : c'est un tournoi en interne, à la cool, qui permettra aussi de promouvoir le club et d'accepter pourquoi pas des nouveaux venus. Donc à mon avis, plusieurs équipe pendant le tournoi vont sûrement abandonner un peu le tournoi au profit de la boisson et de la nourriture proposée pour passer un bon moment.

Pour le reste, tu avais tout compris.

BI4ol :

Même si ta réponse n'est pas celle à laquelle je m'attendais (je m'attendais à un tirage de toutes les équipes en une seule fois répartis sur le nombre de terrains que j'ai et sur autant de rondes qu'il aurait fallu), elle me va parfaitement.

De plus, je peux relancer le tirage s'il ne me convient pas (si une équipe n'a pas envie de rejouer au tour d'après par exemple, ou si elle a envie de jouer 2 fois).

Pour ce qui est de la colonne Tirage, pas de problème, je vais la masquer et on y verra que du feu.

Merci beaucoup de m'avoir solutionner ce souci aussi rapidement.

C'est vraiment super, vous êtes au top.

A bientôt.

Rechercher des sujets similaires à "tirage aleatoire contraintes vba"