Les 3 meilleurs résultats du même participant

Bonjour à tous,

Après plusieurs essais non concluants, je m’adresse à vous afin de solliciter votre aide.

J’ai un tableau qui contient deux colonnes, la colonne A comporte les noms des participants, la colonne B comporte les points obtenus.

Dans la colonne A (des participants), on peut trouver plusieurs fois le même participant, parfois, le nom du participant peut figurer que deux fois voir même qu’une seule fois.

Le but de la manœuvre est de chercher les 3 meilleurs pointages du même participant :

Pour cela :

1 - Trier en premier lieu les deux colonnes sur le total (colonne B), ainsi, nous avons les pointage dans un ordre décroissant.

2 – Lorsque le tri est fait, si le participant figure plus que trois fois, on garde les 3 meilleurs pointages et on supprime toutes les lignes portant le même nom du participant.

Si le nom du participant ne figure que deux fois ou qu’une seule fois, on ne change rien.

3 – En 3e étape, on crée une nouvelle feuille qu’on nomme ‘Class3Meilleurs’ pour transposer les résultats du tableau de la position Verticale à l'horizontale voir la pièce jointe.

4 – et enfin faire la somme des trois points obtenu pour trier ce nouveau tableau sur les totaux de la colonne E.

Je reste à votre disposition si je n’étais assez clair dans mes explications, sinon, la pièce jointe est plus parlante.

D'avance grand MERCI.

Bonjour à tous,

En attendant un soutien de votre part, j’ai continué à chercher une solution malgré mes piètres connaissances.

J’ai réussi à trouver une solution à mon problème (en cherchant un peu), la solution mise en œuvre fonctionne mais je souhaite votre soutien pour l’améliorer.

Au fait je souhaite transposer seulement les 3 plus grandes valeurs pour chaque participant.

Exemple pour MEULLEMANS Alain :

MEULLEMANS Alain 99

MEULLEMANS Alain 92

MEULLEMANS Alain 91

MEULLEMANS Alain 86

MEULLEMANS Alain 86

MEULLEMANS Alain 86

MEULLEMANS Alain 86

MEULLEMANS Alain 85

MEULLEMANS Alain 84

MEULLEMANS Alain 83

MEULLEMANS Alain 83

MEULLEMANS Alain 82

MEULLEMANS Alain 82

MEULLEMANS Alain 80

MEULLEMANS Alain 80

MEULLEMANS Alain 79

On transpose seulement les 3 plus grandes valeurs C.-à-d. : 99 – 92 et 91.

On fera de même pour les autres participants.

D’avance merci pour vos contributions.

Bonsoir,

Ci-joint une proposition à tester.

Lancement avec le bouton violet (comprend toutes les actions à la suite).

Bonne soirée

Bouben

EDIT : le tableau plus bas est une sauvegarde de l'ancienne version => à supprimer

Bonsoir Bouben,

Merci pour votre contribution.

Je viens de faire le test, votre code fonctionne très bien et réponds totalement à mes attentes.

Merci infiniment.

Amicalement.

Bonjour,

J'étais en train de travailler sur votre problème et n'ai pas vu qu'il était résolu.

Je vous poste tout de même ma solution dans le fichier ci joint.

Merci,

Cdlt,

Matthieu

26classement.xlsm (26.81 Ko)

Bonjour Smallwater,

Merci pour votre proposition.

Comme je suis de nature curieux et aussi par respect pour votre travail, j’ai testé votre code et voici ce qui en découle :

Pour faire mon teste, j’ai changé seulement la valeur au 1er participant (ATARTI Dominique), à savoir : j’ai remplacé les ‘290’ points obtenus par ‘500’ et puis j’ai cliqué sur le bouton ‘Process’.

J’ai remarqué que les résultats sont inchangés.

Merci de m’éclairer.

Bonne soirée et cordiale poignée de mains.

Re Bonjour,

Effectivement, merci de votre remarque.

Dans la précipitation j'ai oublié de "nettoyer" la plage de résultats après chaque essais par la ligne de code ci dessous :

resu.Range("A2:E1000").ClearContents

J'ai aussi ajouté une fonction de tri des résultats finaux.

Ci joint le fichier mis à jour.

Dans l'attente de vous lire,

Merci,

Cdlt,

Matthieu

24classement.xlsm (30.37 Ko)

Bonjour Matthieu,

Merci encore de votre réponse.

J’ai fait quelques tests sans rien changer aux données, malheureusement j’ai toujours la même ereur (Erreur d'exécution '438') au niveau de la ligne du code suivante :

resu.Cells(y, 2) = Application.WorksheetFunction.MaxIfs(noms.Columns(2), noms.Columns(1), resu.Cells(y, 1))

Merci de m’éclairer.

A vous lire.

Cordialement.

Bonjour Harzer,

Merci pour votre retour,

C'est étrange, j'ai retester le code sur ma machine et tout se passe bien.

Le probleme semble venir de la fonction 'MaxIfs'. Il est possible qu'elle n'existe pas dans les versions d'Excel < 2010. Quelle version utilisez vous ?

De plus, pouvez vous m'envoyer une copie d'écran du message d'erreur ?

Merci,

Cdlt,

Matthieu

Bonjour,

Comme vous le préciser, le problème vient probablement au niveau de la fonction Maxifs.

Je suppose que je n'ai pas cette fonction parce que je n'ai aucune information sur cette dernière.

Ma version d'Excel est : Version Pro plus 2010 (64 bits).

Ne pourrait-on pas trouver une autre fonction qui fait la même chose.

Je joints une copie du message affichant l’erreur.

A vous lire.

Cordialement.

capture capture1
Rechercher des sujets similaires à "meilleurs resultats meme participant"