Recherche couples de valeurs plus proche

Bonjour

Voila mon problème.

Je veux organiser un jeu où les gens doivent deviner le nombre de billes, de balles de tennis, de balle de golf et autres présent dans un grand récipient transparent.

Chaque personne va donc donner une valeur pour le nombre estimé de billes, de balles de tennis, de balle de golf et autres.

J'aurai donc ces valeurs dans un tableau Excel.

Je cherche donc à extraire la personne qui sera la plus proche (globalement)

J'ai trouvé une solution s'il n'y avais qu'un seul critère (que des billes par exemple) et aussi une solution pour 2 critères (que des billes et balle de tennis) mais pas pour x critères?!

une idée?

Merci

Vincent

Bonsoir,

Je pense qu'il existe une solution simple (cf fichier joint).

L'idée est de créer un tableau avec toutes les propositions faites. Tu stockes la réponse.

Tu réalises une différence entre la proposition et la réponse exacte pour chaque item et tu sommes ces différences.

Tu sauras ainsi qui seras le plus proche de la bonne réponse (avec une valeur la plus proche de 0)

Bonne soirée

26junior1978.xlsx (10.42 Ko)

bonjour

bah ....... oui mais faut voir sur piece ;donc bricole une maquette representative et ;mets la en piece jointe

evite les sites hebergeurs à la mormoile car le forum dispose de " ajouter des fichiers joints" et..... penentre toi de l'idée qu'une capture d'ecran est resoluement inexploitable

cordialement

Merci bien

je regarde ce que ça donne.

Vincent

Bonsoir

Merci j'ai réussi à avancé dans mon "projet".

j'ai une dernière question!

J'ai dans mon fichier excel une feuille de calcul "participants" avec les infos des participants et leur pronostic. (remplie depuis un userform)

Une feuille de calcul "résultats" dans laquelle est inséré les résultats du jeu (le nombre réelle de balle et autre).

Et une autre feuille de calculs "calculs" (remplie quand j'appuie sur un bouton dans une userform) dans laquelle j'ai dans les 3 premières colonnes la différence (en valeur absolue) calculée et une 4° colonne où j'ai la sommation des ces différences. (Méthode de Sharney)

Mon ultime question est de pouvoir quand j'appuie sur mon bouton lancer le calcul (ce qui marche) mais me sortir le nom du candidat qui a gagné!

J'arrive bien a extraire la valeur minimale de la colonne mais il me faudrait plutôt récupérer la ligne correspondant à cette valeur minimal et grâce a cette ligne choper et afficher le nom du gagnant!

Une idée svp?

Merci

Vincent

Bonsoir,

Serait-il possible que tu nous montres à quoi ressemble le fichier ou au moins le code derrière le bouton "Lancer le calcul" ? Ce sera plus facile de t'aider.

Merci

Voila

Faut pas faire attention à la mise en page est autre!

C'est en cliquant sur le bouton résultats que ça ouvre une 2° userform dans laquelle on rentre les nombres gagnants puis en cliquant sur gagnant ça lance les calculs et j'aimerais que ça me sorte aussi le nom du gagnant

Merci

Vincent

9telethon.zip (19.82 Ko)

Voilà,

Cela convient-il ?

13telethon.zip (29.12 Ko)

Merci nickel!

Je viens juste de penser à un truc c'est en cas d’égalité.

Je vais réfléchir à ça.

Par contre un truc que j'arrive pas a trouver c'est d’empêcher le remplissage automatique des cellules.

En effet des que le début du nom du participant est le même qu'un participant déjà dans la liste ça remplie tout avec les infos du participants déjà en place. c'est embêtant pour la confidentialité!!

Vincent

De rien.

Oui en effet, concernant l'égalité, pour le moment ce n'est pas automatique.

Concernant le remplissage, c'est le code suivant qui effectue cela :

'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
ComboBox1.Text = UCase(ComboBox1.Text)
Dim Ligne As Long
Dim I As Integer
   If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For I = 1 To 9
    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
  Next I
 End Sub

Merci

j'ai retiré le menu déroulant et autre bouton inutile au final.

Par contre j'ai essayé de gérer le cas des égalités mais impossible de mettre en oeuvre la fonction que j'avais trouvé.

Si éventuellement je vous saoule pas encore je suis partant pour un peu d'aide! Et quitte à encore vous embêter avec mes questions. Le fin du fin en faite serait de faire un tirage aléatoire du nom du gagnant parmi ceux étant à égalité.

Merci

Vincent

bonjour

pour traiter les ex-equo ;il faut simplement additionner au score le n°de ligne ()*0.000001 afin de creer une infime difference

eventuellement dans une colonne zzzzz (non visible) ;c'est cette colonne qui sert de base

cordialement

Oui mais faire cela revient donc à "tirer au sort" la première personne qui à la valeur minimale. Ça revient a ce que fait le programme actuellement avec la fonction find qui sort la première occurrence correspondant à la recherche.

Vincent

Bonsoir Vincent,

Je viens de m'amuser à refaire le fichier afin de simplifier le fonctionnement et tous les codes et que cela soit plus facile à comprendre (pour toi comme pour moi).

J'ai pour le moment uniquement repris ce que l'on a validé précédemment. Je te laisse tester et me dire q'il y a des choses que tu souhaites modifier.

Bonne soirée

Bonjour

Jai eu un pb en faisant tourner ta feuille excel.

Et j'avais aussi mis des masques pour certaines cellules mais sinon oui l'idée est la. Mais c'est surtout les égalités que j'aimerai résoudre.

Vincent

J'ai cherché à gérer les égalités en utilisant l'idée de Tulipe_4.

J'ai programmé un nombre aléatoire

 LRandomNumber = (0.2 * Rnd) 

et j'additionne à ma "sommation des différences" ce nombre aléatoire.

La fonction

Reponse = Application.WorksheetFunction.Min(MyRange)

trouve bien mon minimum mais enregistre dans ma variable Reponse une valeur entière.

Donc forcement ma fonction

Set Lig = .Cells.Find(Reponse, , xlValues, xlWhole)

ne trouve pas cette valeur lors de la recherche car le find cherche une valeur entière et ma valeur ne l'est pas!

J'ai bien déclaré ma variable Reponse en Single mais ça marche pas.

Merci de l'aide

Vincent

re

le probleme c'est qu'avec rnd ça change toujours

cordialement

oui ça change je suis d'accord mais dans mon programme. Je remplie mon tableau en utilisant rnd donc une fois la valeur mise dans mon tableau celle ci ne change plus.

Et c'est une fois mon tableau rempli (donc avec des valeurs fixé) que je recherche mon minimum.

c'est juste un probleme de précision de ma valeur dans mon find j'ai l'impression.

Vincent

re

je ne suis pas vba iste mais en "matchant "reponse" dans la colonne d'addition

cordialement

tu entends quoi par matcher reponse?

Vincent

Rechercher des sujets similaires à "recherche couples valeurs proche"