XL 2010 extraire les 2 meilleurs scores dans une plage de cellule et les recopier sur une autre feuille

ymanot

XLDnaute Occasionnel
Bonjour à tous,
Le titre semble facile mais la réalisation me parait plus complexe.
Vous trouverez dans la feuille "GLOBAL SEANCE" les informations que je souhaite extraire automatiquement et recopier sur la feuille "EVALUATION" dans les colonnes "B" "C" "D" et "E" "F" "G" respectivement les relais, difficultés et types.

Pour comprendre le raisonnement je vous ai laissé le travail saisi par mes élèves durant les séances. Ces saisies se comptabilisent sur la feuille "global séance" puis vient l'étape pour laquelle je demande votre aide.
Sur la feuille évaluation j'ai laissé les informations de cotations pour les non initiés à l'escalade.
Merci pour votre aide
thierry
 

Pièces jointes

  • doc escalade inclus eval 2020.xlsm
    905.9 KB · Affichages: 22

Fred0o

XLDnaute Barbatruc
Bonjour @ymanot

Quelles données veux tu recopier sur la feuille Evaluation dans les colonnes B a G ?
D'apres le titre il s'agit des meilleurs scores mais dans la feuille Global seances, il n'y a que des 1. Donc, c'est comme a l'école des fans. Tout le monde a gagné ! ;)

1632712891847.png


Un exemple de ce que tu veux dans la feuille Evaluation, nous permettrait de comprendre.
 

ymanot

XLDnaute Occasionnel
Bonjour à tous, Bonjour FREDOO
C'est aussi pour cela que j'ai placé une grille de référence pour vous dans la feuille "Evaluation"
Les "1" montrent que l'élève a réalisé la voie, on peut voir des 2 si ils ont fait la voie 2 fois etc... le score c'est la difficulté que l'on aperçoit dans les cases de couleur

par exemple dans votre capture d 'ecran on peut voir : que Flavia a réalisé dans la voie 2, le relai rouge de niveau 5C.

sachant que comme indiqué dans le document :
111 (veut dire qu'il y a 3 relais de couleurs différentes dans la voie 1,
222 (idem)
3333 (4 relais de couleur...)
les difficultés vont de : 4, 4A,4A+4B,4B+,4C,4C+,5,5A,5A+,5B,5B+,5C,5C+,6,6A,6A+,6B,6B+,6C,6C+
et on ajoute qu'un devers est plus dur qu'une verticale qui elle même est plus dure qu'une dalle
soit : devers>verticale>dalle

Donc ce que j'aimerai, c'est que vous trouviez la solution permettant de relever les 2 meilleures voies (les plus difficiles) réalisées par un élève, et ensuite de les recopier sur la feuille "evaluation" à l'endroit ou moi je les copie manuellement.
Encore désolé si ma demande manquait d 'explications (mais je les avais glissées dans le document)
merci
thierry
 

Fred0o

XLDnaute Barbatruc
Bonjour @ymanot

Voici une solution par macro.
J'ai attribue un note de difficulté par type de voie. Voir tableau T1:X83 dans onglet Evaluation. Ensuite, pour un meme éleve, on peut avoir plusieurs voies réussies de meme difficulté. J'ai pris la premiere rencontrée dans le tableau.

A tester
 

Pièces jointes

  • doc escalade inclus eval 2020.xlsm
    58.3 KB · Affichages: 6
Dernière édition:

ymanot

XLDnaute Occasionnel
Bonjour Freddo,
Bonjour tout le monde

après avoir déplacé le tableau "recap" et la feuille "seance" lorsque je fais la maj du tableau feuille "Evaluation"
j'ai ce debogage ' max = .Cells(4, c.Column()) surligné en jaune" dans le code du module 1

Code:
Sub Classement()
    Dim elv As Range, l As Integer, c As Range, max As Integer, relai As Byte, Diff As String, TypVoie As String
    Dim max2 As Integer, relai2 As Byte, Diff2 As String, TypVoie2 As String
    Application.Calculation = xlManual
    Sheets("Evaluation").[B4:G26].ClearContents
    For Each elv In Sheets("Evaluation").[A4:A26]
        max = 0
        max2 = 0
        With Sheets("Global seances")
            For l = 6 To 27
                If elv = .Cells(l, 2) Then
                    For Each c In .Range(.Cells(l, 3), .Cells(l, 51))
                        If .Cells(l, c.Column()) <> "" And .Cells(4, c.Column()) > max Then
                            max2 = max
                                max = .Cells(4, c.Column())
                            relai2 = relai
                            relai = .Cells(2, c.Column())
                            Diff2 = Diff
                            Diff = .Cells(5, c.Column())
                            TypVoie2 = TypVoie
                            TypVoie = .Cells(3, c.Column())
                        End If
                    Next c
                    Range("B" & elv.Row()) = relai
                    Range("C" & elv.Row()) = Diff
                    Range("D" & elv.Row()) = TypVoie
                    Range("E" & elv.Row()) = relai2
                    Range("F" & elv.Row()) = Diff2
                    Range("G" & elv.Row()) = TypVoie2
                End If
            Next

Y a til une solution ?
merci
 

Pièces jointes

  • doc escalade inclus eval 2020 version freddo version debogage cell4.xlsm
    271.1 KB · Affichages: 2

ymanot

XLDnaute Occasionnel
UN ENORME MERCI FREDOo !!!!
effectivement l'oubli fatal.
Tout fonctionne à merveille.

Toutefois une derniere petite aide,
j'ai tout remis a zero niveau données, mais seuls les noms de la feuille "évaluation" ne bougent pas.
j'avais crée une liste a saisir, et je ne sais pas si ta macro prend en compte la colonne avec les noms.;
 

Pièces jointes

  • doc escalade inclus eval automatique version 2021 fredoo 5.xlsm
    912.8 KB · Affichages: 3
Dernière édition:

Statistiques des forums

Discussions
315 099
Messages
2 116 211
Membres
112 689
dernier inscrit
florianbzh