XL 2016 Mystère d'une macro qui part en vrille

Yvouille

XLDnaute Nouveau
Bonjour,

J’ai créé un fichier permettant de tirer des équipes de joueurs de pétanque de 6 villes différentes lors d’un tournoi en 4 tours. Tel que présentée dans les fichiers ci-joints, la situation au niveau du nombre de joueurs par ville est très représentative de la réalité.

L’idée est d’avoir le maximum de triplettes (équipes de 3 joueurs), avec des joueurs de 3 villes différentes et que les mêmes joueurs ne se retrouvent pas deux fois dans la même équipe durant la journée. Si le nombre de joueurs n’est pas un multiple de 6, il faut créer des équipes de 2 joueurs (des doublettes), mais alors il ne faudrait pas que le même joueur joue deux fois en doublette lors des 4 tours.

Dans le fichier Version 3 ci-joint, je créais ces équipes en 4 étapes assez compliquées à expliquer, mais ce qui est surtout important à savoir est que l’instruction de la ligne 67 Cells(m, j).Cut Cells(Cells(Rows.Count, j + 26).End(xlUp).Row + 1, j + 26) de la macro Sub Tirages() du Module_Y fonctionne très bien, en tout cas qu’elle ne créait pas de blocage et que mon code se déroulait de bout en bout.

Mais comme les résultats finaux n’étaient pas satisfaisants, j’ai tenté de modifier mes codes, notamment en réduisant le nombre d’étapes de 4 à 3.

Lors de l’introduction de ces nouveaux passages, j’ai eu la mauvaise surprise de constater que mon code partait nouvellement en vrille et ceci lors de l’utilisation de la même instruction que celle mentionnée ci-dessus : Cells(m, j).Cut Cells(Cells(Rows.Count, j + 26).End(xlUp).Row + 1, j + 26).

De la Version 4 à la Version 10, j’ai tenté toutes sortes de solutions en vain, particulièrement en saucissonnant les différentes étapes et en tentant de remettre à zéro les variables à la fin de chaque nouveau code ; ma macro bloque toujours au même endroit.

Dans la Version 10, il s’agit de la ligne 22 de la macro Sub Formation_des_doublettes() dans le Module_Doublettes. En plaçant un point d’arrêt sur cette ligne et en avançant alors au pas à pas, on peut l’observer.

Je constate alors que si je mets en commentaire l’un des nouveaux passages - les lignes 99 à 104 de la macro Sub Triplettes_deuxième_manière() dans le Module_Triplettes_2 - ça ne bloque plus !!!

Dans ce cas – tel que présenté dans la Version 10 ci-joint - les résultats attendus ne sont pas corrects sur les feuilles ‘’Tour 1’’, ‘’Tour 2’’, etc., mais au moins ça ne bloque plus.

MA QUESTION DONC : Avez-vous une idée de la relation entre ces deux passages ?

Amicalement.
 

Pièces jointes

  • Tournoi Inter-Clubs_V10.xlsm
    162.8 KB · Affichages: 7
  • Tournoi Inter-Clubs_V3.xlsm
    136.5 KB · Affichages: 6

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai bien un système de tirage tous versus à nombre de terrains limité, mais c'est du 1 contre 1
Je n'ai guère envie pour le moment d'écrire un nouvelle procédure de tirage.
Si aucune de celles du ListeAléat.xlsm ne convient essaie d'en adapter une. Le principe est toujours le même: le cœur du dispositif est une procédure récursive qui ne détermine qu'une seule rencontre mais n'a le droit de retenir son choix que si un appel récursif a elle même pour la rencontre suivante a lui aussi pu aboutir.
 

Yvouille

XLDnaute Nouveau
Salut, je te remercie pour ta réponse.

C'est malheureusement du chinois pour moi. Je ne saurais même pas par quel bout commencer. Comme tu dis : ''Je n'ai guère l'envie pour le moment'', je garde un tout petit espoir que tu y reviennes un jour.

Encore un grand merci pour la résolution de mon premier problème.

Amicalement
 

Discussions similaires

Statistiques des forums

Discussions
314 714
Messages
2 112 139
Membres
111 436
dernier inscrit
jibusigor