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

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
Bonjour.
Dernière instruction de la Public Sub Conclure de l'UFmVisu : Décharger.PlanifierDans 5
remplacer 5 par le nombre de secondes souhaité (laissez quand même le temps de lire le message !)
 

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.
 

phil77515

XLDnaute Nouveau
bonjou r
merci pour votre aide , l'objet est de savoir combien de combinaison l'alegorythme a fait
c'est juste pour le fun

j'essaye d'ecrire qqch et vous le soumet

je suis un peu charge en ce moment LOL

a bientot
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…