XL 2016 Aide pour creer une macro pechue

phil77515

XLDnaute Nouveau
bonjour

je souhaiterais avoir de l'aide pour créer un petit sous excel

au premier tour
il s'agit de composer des binômes en fonction de critères Puis de leur attribuer un gage

au second tour
toujours pareil sauf que les binômes doivent changer

idem au 3eme et 4eme tour

j'ai prépare un fichier avec déjà des éléments mais mes limites sont atteintes

merci de votre aide
 

Pièces jointes

  • JEU TIRAGE SORT.xlsm
    31.8 KB · Affichages: 62

Dranreb

XLDnaute Barbatruc
Mais à quoi ça peut bien vous servir tout ça ???
Il y a déjà la durée affichée ça suffit, non ? Elle est proportionnelle au nombre d'examens fructueux et infructueux des postes du tableau TIrage, plusieurs fois et de façon récursive si cela a été nécessaire.
Votre question semble suggérer que vous n'avez pas compris le principe de fonctionnement.
À un instant donné Trouvé cherche à un niveau Niv (0 à NivMax) une association possible c'est à dire qui l'est déjà intrinsèquement, mais qui permet aussi d'en trouver une pour le Niv suivant, et par conséquent, jusqu'à NivMax, pour tous les niveaux suivants, puisque c'est récursif. La procédure principale n'a du coup à demander que la recherche du niveau 0 puisque ça lance toute la cascade d'appels récursifs pour l'ensemble. Il n'y a en quelque sorte qu'un seul essai, mais fonctionnant récursivement.
 
Dernière édition:

phil77515

XLDnaute Nouveau
boinjour
je le concede , le niveau des codes est tres haut et je ne comprend pas toutes les variobles

ex de celle la
Private Function Cyclo(ByVal X As Double) As Double
Const Pi = 245850922 / 78256779, Pi×2 = 2 * Pi
Cyclo = X - Sin(X * Pi×2) / Pi×2
End Function

la j'avoue que je decroche ; c'est incomprehensible LOL


le but est de savoir la nombre d'iteration ou d"e calcul avant d'arriver au resulat final
 

Dranreb

XLDnaute Barbatruc
Oh mais ce n'est qu'une fonction mathématique annexe. Une cycloïde pour être précis.
Elle varie peu au voisinage de 0 et 1 et a une dérivée 2 à 0,5. Elle peut servir pour des déplacement doux d'images. Là c'est pour agrandir l'UFmVisu à certains paliers de durée écoulée afin de dévoiler ses parties basses pour attirer l'attention sur l'éventualité que le problème tel qu'il se présente est potentiellement sans solution.
 

Dranreb

XLDnaute Barbatruc
Cette procédure dans un module standard vous permet de voir toute l'animation qui se sert de cette cycloïde.
Elle dure environ une minute, ce qui est extrêmement long en termes de nombre d'instructions machine exécutées.
VB:
Sub Test()
   UFmVisu.DescConfig "Démo animations"
   Do:
      UFmVisu.Montre Rnd
      Loop Until UFmVisu.Abandon
   UFmVisu.Echec
   End Sub
 

Dranreb

XLDnaute Barbatruc
Pourquoi pour chaque NbEqu ?
Ce que je ne comprends pas c'est pourquoi vous voulez comptabiliser ça. Quest-ce que ça vous apporterait ?
Enfin vous pouvez toujours déclarer une variable globale as Long, la mettre à 0 avant le If Trouvé(0) Then, et y ajouter 1 dans la Function Trouvé juste après le UFmVisu.Montre Niv/NivMax comme ça vous auriez à la fin le nombre total d'invocations de la fonction Trouvé.
Rappel: Elle est récursive, elle s'appelle donc elle même : Trouvé = Trouvé(Niv + 1)
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous pourriez aussi comptabiliser les rejets d'associations valides du fait qu'elles empêchent la conclusion de l'ensemble. Dans ce cas c'est juste après le If Trouvé Then Exit Sub que vous pourriez ajouter 1 à un compteur, avant donc de défaire cette association en vue d'envisager la suivante possible s'il en restent. Le compteur se retrouverait donc à 0 s'il n'aura jamais été gêné en prenant simplement tels qu'ils viennent, dans l'ordre aléatoire des listes, les numéros du partenaire et celui du gage. Les incompatibilités intrinsèques rencontrées ne seraient pas comptabilisées, seules le seraient les compatibilité bloquantes pour le reste. Chaque point compté serait un "Ce serait allé, mais n'en aurait laissé aucun qui aille à ceux qu'il restait à traiter", quoi …
Mais là non plus je ne perçois bien l'intérêt d'afficher cette information à la fin. Le temps mis me paraît suffisant pour apprécier, par rapport à celui qui s'affiche d'habitude, si c'est presque passé tout droit direct ou s'il a eu au contraire plein d'embuches au passage.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai néanmoins modifié l'UFmVisu pour qu'il puisse afficher un message en dessous du temps mis.
Ça permet d'afficher le nombre de passages effectués dans la boucle parcourant LatJ, la liste en ordre aléatoire des numéros de partenaires non encore appariés de la manche, et le nombre d'attributions auxquelles il a fallu renoncer car elles empêchaient de finaliser le tirage.
 

Discussions similaires

Statistiques des forums

Discussions
315 123
Messages
2 116 459
Membres
112 748
dernier inscrit
Pboiusquet