Tri sélectif entre feuilles avec moyenne

Bonjour,

j'aimerais savoir s'il est possible par une formule de reprendre le titre d'une compétence en feuille P3 (cellule B2, puis B6, B15, ...) et de la reporter en feuille "synthèse des résultats" dans une cellule (par exemple C3, puis C4 pour la compétence suivante et ainsi de suite). En cellule "C2", j'aimerais la moyenne des résultats de la même compétence de la feuille P3 (cellules B2 à B5 puis cellules B7 à B14, .....) . Ainsi de suite pour chacune des compétences.

Merci d'avance pour votre aide.

Bonjour

Un essai à tester. Te convient-il ?

Option Explicit

Dim f As Worksheet, fs As Worksheet, tablo, tablor()
Dim dico As Object, dicoN As Object
Dim i&, ln&

Sub Synthese()

    Set fs = Sheets("Synthèse des résultats")
    Set dico = CreateObject("Scripting.Dictionary")
    Set dicoN = CreateObject("Scripting.Dictionary")
    Application.EnableEvents = False
    fs.Range("A3:C" & fs.Range("C" & Rows.Count).End(xlUp)(2).Row).ClearContents

    For Each f In Worksheets
        If f.Range("B2") <> "Moyenne par compétence" Then
            tablo = f.Range("A2").CurrentRegion
            For i = 2 To UBound(tablo, 1)
                If dico.exists(tablo(i, 2)) Then
                        dico(tablo(i, 2)) = (dico(tablo(i, 2)) * dicoN(tablo(i, 2)) _
                                + tablo(i, 1)) / (dicoN(tablo(i, 2)) + 1)
                    dicoN(tablo(i, 2)) = dicoN(tablo(i, 2)) + 1
                Else
                    dico(tablo(i, 2)) = tablo(i, 1)
                    dicoN(tablo(i, 2)) = 1
                End If
            Next i

            ln = Cells(Rows.Count, 2).End(xlUp).Row
            ln = IIf(ln = 2, 2, ln + 2)
            fs.Range("A2:C2").Copy Range("A" & ln)
            fs.Range("A" & ln) = f.Name
            fs.Range("B" & ln + 1).Resize(dico.Count, 1) = Application.Transpose(dico.items)
            fs.Range("C" & ln + 1).Resize(dico.Count, 1) = Application.Transpose(dico.keys)

            Erase tablo
            dico.RemoveAll
        End If
    Next f
    Application.EnableEvents = True
End Sub
Option Explicit

Private Sub Worksheet_Activate()
    Call Synthese
End Sub

Bye !

Merci mais ça ne fonctionne pas

capture d e cran 2021 10 13 a 10 28 08

Oh ! Pardon !

Je n'avais pas fait attention que tu étais sur Mac. Et Mac ne prend pas l'outil dictionnaire...

Dommage !

Bye !

Merci d'avoir pris du temps et d'avoir essayé.

Rechercher des sujets similaires à "tri selectif entre feuilles moyenne"