synthèse de plusieurs feuilles excel

naedioba

XLDnaute Nouveau
bonjour à tous,
J'ai une fichier Excel (mes_cours) avec plusieurs feuilles (Cours1, Cours2, Cours3, ... , CoursN).
Dans chaque cours il y a les colonnes PRENOM, NOM, NOTE 1, NOTE 2, ... , NOTE N, MOYENNE.
Un étudiant peut être sur un ou plusieurs cours.
Je veux avoir sur une autre feuille (synthese) la synthese des moyennes des étudiants. J'utiliserai pour cela les colonnes suivantes: PRENOM, NOM, Moyenne_Cours1, Moyenne_Cours2, Moyenne_Cours3, ... , Moyenne_CoursN

NB: Chaque étudiant doit apparaître une seule fois, mais avec la moyenne des cours qu'il a suivi dans les colonnes correspondantes.

Comment je peux le faire.

J'ai mis un fichier exemple en pièce jointe.

Merci mille fois.
 

Pièces jointes

  • mes_cours.xlsx
    13.6 KB · Affichages: 38

Droussel

XLDnaute Occasionnel
Re : synthèse de plusieurs feuilles excel

bonsoir

ci joint fichier en reponse
je pense que le plus simple est d'inserer les bonnes formules sans recourir aux macro

organise tes onglts tous de la meme maniere en mettant la moyenne en colonne C ce qui te permet d'utiliser la meme formule quelque soit le nombre de notes

dans l'onglet synthese fais attention à ce que les noms et prenoms soient identiques avec les feuilles detail et que les noms d'en tete de colonnes correspondent exactement aux noms d'onglet

A+
 

Pièces jointes

  • synthese-de-plusieurs-feuilles-excel-mes_cours.xlsx
    13.9 KB · Affichages: 39

naedioba

XLDnaute Nouveau
Re : synthèse de plusieurs feuilles excel

Bonjour Droussel,
Merci pour ton tuyau, ça marche à merveille.
Encore une autre question d'un novice. J'ai remarqué que si j'ajoute une colonne à gauche de l'une des feuilles COurs, ça ne marche plus (Si par exemple dans la feuille Cours1 je place une colonne "Numero" à gauche de "Prenom"). Dans ce cas, quelle est la partie du code qui doit changer pour régler le problème.

Mille mercis.
 

klin89

XLDnaute Accro
Re : synthèse de plusieurs feuilles excel

Bonjour naedioba, Droussel,le forum :)

Comme j'ai compris, restitution en Feuil1 :
VB:
Option Explicit
Option Compare Text

Sub Moyenne_des_notes()
Dim ws As Worksheet, a, i As Long, j As Long
Dim txt As String, b(), n As Long, t As Long
    ReDim b(1 To 1000, 1 To 2): n = 1
    b(1, 1) = "Prénom": b(1, 2) = "Nom"
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For Each ws In Worksheets
            If ws.Name Like "Cours*" Then
                t = t + 1
                ReDim Preserve b(1 To UBound(b, 1), 1 To 2 + t)
                b(1, UBound(b, 2)) = ws.Name
                a = ws.Range("a5").CurrentRegion.Value
                For i = 2 To UBound(a, 1)
                    txt = Join$(Array(a(i, 1), a(i, 2)), Chr(2))
                    If Not .exists(txt) Then
                        n = n + 1: .Item(txt) = n
                        For j = 1 To 2
                            b(n, j) = a(i, j)
                        Next
                    End If
                    b(.Item(txt), UBound(b, 2)) = a(i, UBound(a, 2)): txt = ""
                Next
            End If
        Next
    End With
    With Sheets("Feuil1").Cells(1).Resize(n, UBound(b, 2))
        .CurrentRegion.Clear
        .Value = b
        With .CurrentRegion
            .BorderAround Weight:=xlThin
            .Borders(xlInsideVertical).Weight = xlThin
            With .Rows(1)
                .Interior.ColorIndex = 19
                .BorderAround Weight:=xlThin
            End With
            With .Offset(1, 2).Resize(.Rows.Count - 1, .Columns.Count - 2)
                .NumberFormat = "#,##0.00"
            End With
            .Columns.AutoFit
        End With
        .Parent.Select
    End With
End Sub
klin89
 

Pièces jointes

  • naedioba.xls
    62 KB · Affichages: 45

Discussions similaires

Statistiques des forums

Discussions
312 246
Messages
2 086 574
Membres
103 247
dernier inscrit
bottxok