Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Aide macro / nettoyage fichier

sebastianbl

XLDnaute Nouveau
Bonjour,

Suite à un précédent message (https://excel-downloads.com/threads...ontrol-activex-resolu.20084662/#post-20661960), j'ai récupéré un fichier pleins de macros non fonctionnel (macro- copie.xlsm). J'ai réussi à avancer un peu en transférant les macros dans un nouveau fichier (macros fichier test.xlsm) avec une mise en page un peu différente tout en nettoyant des macros qui étaient en doublon dans d'autres modules.
Je pensais avoir réussi à modifier les macros avec les nouvelles références de cellule / range, mais je n'arrive pas à faire fonctionner toutes les macros du module 2

Ce qui marche:
Sub suppscore()
Sub toutSupprimer()
Sub SwitchTerrain1()
Sub SwitchTerrain2()
Sub SwitchTerrain3()
Sub SwitchTerrain4()
Sub SwitchTerrain5()
Sub SwitchTerrain6()
Sub SwitchTerrain7()

Ce qui bug:
Sub melangerJoueurs()
Sub shuffle()
Sub renseignerLeTerrain(listeJoueurs)
Sub placerJoueurs(listeJoueurs)
Sub recupererLesScores()
Sub highlighterLesGagnantsPtsParGame()
Sub highlighterLesGagnantsPtsTotal()

Ce que je ne comprend pas / ne sais pas ce que cela doit faire:
Sub cadre()

Est ce que je pourrais avoir un petit coup de main svp pour retrouver un fichier qui fonctionne ?
Il y a pas mal de commentaires dans le code, mais si besoin pour clarifier le principe du fichier, voici un résumé:
tournoi jusqu'à 200 personnes en paire vs paire
faire en sorte que personne ne rencontre 2 fois le même adversaire
ce qui ne jouent pas le tour actuel sont prioritaires pour le tour suivant
tout le monde doit jouer le même nombre de match
le classement se fait par le nombre de point marqué par chacun, ou si nombre de matchs inégaux, par la moyenne des pts / match

Merci d'avance!!

PS: merci à @sylvanu et @jurassic pork pour leur aide précédemment!
 

Pièces jointes

  • macro- copie.xlsm
    77.3 KB · Affichages: 2
  • macros fichier test.xlsm
    90.6 KB · Affichages: 5
Solution
Re, re et re
Voici où j'en suis :
J'ai laissé tombé la modification du calcul des pauses !
J'arrive à faire 6 tours sur un terrain quand les autres sont encore au tour 1 et j'ai pas de message d'erreur.
En effet cela ne provoque pas d'erreur, c'est juste la priorité donnée au joueur resté le plus souvent en attente qui peut être faussée, pas bien grave ..


Voir cette dernière version
À bientôt

sebastianbl

XLDnaute Nouveau
wow! C'est formidable ce que tu as pu faire en si peu de temps, je ne m'attendais pas à un truc aussi bien du premier coup!!
merci beaucoup!!!

A première vue (j'ai fait 6 tours), tout semble fonctionner comme cela devrait. J'ai néanmoins quelques questions / souhaits:

1. sur le podium, est ce possible de ne mettre que ceux qui ont joué au moins 1 tour?
par exemple, j'ai cela sur TOURNOI

mais 198 apparaît quand même sur le podium:



2. Serait-il possible d'enregistrer non pas le tour mais le match afin de pouvoir en lancer un autre plus rapidement? Cela éviterai d'attendre que tous les matchs sur les 7 terrains se terminent avant de pouvoir lancer le prochain.


3. Enfin, serait il possible d'ajouter une autre variable lors de la composition des paires?
Idéalement via une colonne après la colonne P qui indiquerait (manuellement) si le joueur est "loisirs", "confirmé" ou "expert" et faire en sorte que lors de la composition des paires, on se retrouve uniquement ces combinaisons là:

Cela serait même formidable que cette table soit éditable, c'est à dire qu'on pourrait l'ajuster selon le type de tournoi effectué ou la participation: pour certains événements, ça pourrait être ok pour toutes les combinaisons, pour d'autres, être plus restrictif.

Bien sûr je ne voudrais pas abuser de ton temps, ce que tu as fait pour moi/notre association est déjà incroyable!
 

Pièces jointes

  • 1728547555811.png
    8.3 KB · Affichages: 3

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @sebastianbl
Merci pour ce retour enthousiaste !

Bon pour ta demande N°1 c'est corrigé du moins je pense :
Enrichi (BBcode):
=SI(NB(Tb_Tournoi[Pts / Tour])=0;
                "-";
               FILTRE(Tb_Tournoi[Joueurs];(Tb_Tournoi[Sexe]=$A$1)*
                                          (Tb_Tournoi[Nb Joués]>0)*
                                          (Tb_Tournoi[Pts / Tour]=INDEX(TRIER(UNIQUE(FILTRE(Tb_Tournoi[Pts / Tour];Tb_Tournoi[Sexe]=$A$1));;-1);B$2));
                                           ""))
(sexe en $A$1, Rang en B$2)

Pour ta demande N°2, c'est presque déjà le cas (si un matche ne comporte pas de score, il n'est pas enregistré),
mais il me faut modifier le tirage pour ne sortir qu'un matche est l'enregistrer sur un terrain libre (celui ou ceux qui viennent de se libérer) il me faut regarder de plus près.

Pour ta demande N°3, il faut que je réfléchisse, ça conditionne pas mal le tirage des adversaires, bon je regarde.
Par contre ta grille est incomplète il manque les équipes "Confirmé | Confirmé" :


Je te joins le fichier modifié
À bientôt
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    96.2 KB · Affichages: 1
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Re
J'ai oublié de corriger une partie de la formule
Enrichi (BBcode):
=SI(NB(Tb_Tournoi[Pts / Tour])=0;
    "-";
    FILTRE(Tb_Tournoi[Joueurs];
          (Tb_Tournoi[Sexe]=$A$1)*
          (Tb_Tournoi[Nb Joués]>0)*
          (Tb_Tournoi[Pts / Tour]=INDEX(TRIER(UNIQUE(FILTRE(Tb_Tournoi[Pts / Tour];
                                                           (Tb_Tournoi[Sexe]=$A$1)*
                                                           (Tb_Tournoi[Nb Joués]>0)
                                                            )
                                                      );
                                              ;-1);
                                       B2));
                                ""))
Sexe en $A$1 et Rang en B2)
Voir pièce jointe
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    99 KB · Affichages: 2
Dernière édition:

sebastianbl

XLDnaute Nouveau

Juste une réflexion:
est ce que cela ne serai pas plus simple au lieu d'avoir un bouton "enregistrer le tour" avoir plutôt un bouton "enregistrer match" sur chacun des terrains?
Peut être avec un deuxième bouton "nouveau match" pour en lancer un nouveau sur ce terrain?

 

AtTheOne

XLDnaute Accro
Supporter XLD
Re
Je suis en cours de réflexion sur le sujet :

Regarde le fichier joint en cours de modification, lorsque l'on saisit le score sur un terrain un message propose d'enregistrer le score et de faire un nouveau tirage sur ce terrain. (choix non actif)

La difficulté (mais sans doute pas insurmontable) est de gérer plusieurs tours en cours. Surtout pour les absents car je renseigne actuellement la valeur "A" pour tous les absents lorsque j'enregistre le tour entier.
Je te propose d'enregistrer cette absence dès qu'un nouveau tour commence sur un terrain.
L'absent revenu devra attendre le début d'un nouveau tour pour espérer être tiré au sort.
Supposons qu'il revienne juste après que le 1er match du tour n soit tiré, il devra attendre la fin de tous les match de ce tour n pour entrer dans la liste des joueurs présents pouvant être choisis.

Je ne sais pas si je suis clair !

Regarde le fichier (attention tout n'est pas fonctionnel et je ne suis pas encore arrivé au pb des niveaux à équilibrer)
À bientôt
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    102.6 KB · Affichages: 3
Dernière édition:

sebastianbl

XLDnaute Nouveau
ca serai très bien aussi comme solution. Et si on clique "annuler" le terrain reste vide, ca serait utile pour finir ce tournoi.
Les 2 solutions me vont, fait ce qui te semble le plus simple à mettre en oeuvre!
Merci merci merci!
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @sebastianbl
Voilà je te livre une version qui utilise la grille de compatibilité pour le tirage des rencontres.
Il n'y a plus qu'un bouton qui peut prendre différentes valeur en fonction de l'état du tirage.
Je ne suis pas bien sûr du choix de ces valeurs : Effacer tout, Commencer le tournoi, Début du tournoi(cette dernière valeur n'enclenche aucune action)
Je te laisse réfléchir à cette ergonomie.
L'enregistrement et le nouveau tirage sont déclenchés par la saisie du score.
À bientôt

PS je n'aurai pas de PC en début de semaine prochaine.
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    112.1 KB · Affichages: 2

sebastianbl

XLDnaute Nouveau
Salut @AtTheOne
Merci beaucoup
J'ai des erreurs sur cette version en faisant cette manipulation:
1. je mets 150 joueurs en absent (colonne R = "oui")
2. lancer le tournoi "commencer le tournoi", les terrains se remplissent
3. je met un score sur un terrain (par exemple terrain 4), la boite de dialogue s'affiche, je clique "oui")
4. le terrain 4 se re-remplie de joueurs, je rentre le score
5. un message d'erreur s'affiche:

si je cloque "debug" ca me surligne cette ligne:


Je ne pense pas que cela viennent des absents, car j'ai bien 4 joueurs dans les 50 premiers, donc joueurs actifs.

Pour le tableau des niveaux, c'est top! Par contre y'a au moins une combinaison qui ne marche pas:
confirmé/confirmé vs loisir/loisir ne devrait pas exister, or je l'ai sur le terrain 5. Et quand j'utilise "switch terrain", ca change bien les joueurs mais pas les commentaires de niveaux sur les cellules.

Je vais réflechir à l'ergonomie, je t'enverrai un fichier avec une proposition d'ici peu.
Merci encore!

Si on arrive à avoir un fichier stable ce week end avant que tu ne perdes accès à ton PC ca serait top, on fera un test grandeur nature mardi avant notre tournoi
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    114.5 KB · Affichages: 0

sebastianbl

XLDnaute Nouveau
proposition d'ergonomie, voir commentaires dans le fichier.

Si cette gestion de tour par terrain est trop compliqué ou tu penses met trop de limitations dans l'utilisation du fichier, on peut revenir à un tour complet: une fois tous les matchs terminés, on lance un nouveau tour. A y réfléchir en pratique, ça va être un peu compliqué pour les organisateurs d'aller chercher les joueurs et leur dire sur quel terrain aller à chaque fin de match. C'est plus facile de faire un appel en disant qu’un nouveau tour va se lancer et on distribue 28 joueurs d'un coup.

Y a du pour et du contre pour chacune des options, voit ce qui te semble e plus simple à mettre en œuvre et on s'adaptera.

Merci!!
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    117 KB · Affichages: 1
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Re
J'ai regardé et corrigé (il me semble) les erreurs signalées au post28, plus une sur le calcul du nombre de pause (compliqué parce que plusieurs tours peuvent être en cours ... mais je dois encore revoir ma copie si l'on commence un tour n+2 ou n+3 alors que le tour n n'est pas terminé)

Regarde le fichier joint
Je regarde ta proposition d'ergonomie
À bientôt
 

Pièces jointes

  • Tournoi Bad AtTheOne.xlsm
    113.8 KB · Affichages: 2

Discussions similaires

Réponses
16
Affichages
855
Réponses
20
Affichages
660
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…