Bonjour à tous,

Je dispose d'un fichier présenté de cette façon :
Code_etu ; Nom_etu ; matière
6 ; dupont ; maths
6 ; dupont ; français
6 ; dupont ; anglais
7 ; dupontel ; maths
7 ; dupontel ; physique
....
et je souhaite créer autant de fichier qu'il y a d'étudiants et à l'intérieur de ces fichiers, autant d'onglet que de matières.
Par exemple, un fichier excel "6 dupont.xls" avec 3 onglets (maths, français et anglais).

La création de fichiers fonctionne, voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub macro()
 
Dim rep As String, maquette As String, code_etu As String, nom_etu As String
Dim ligne As Integer, nbligne As Integer, nb_etu As Integer
 
donnees = "fichier test agri.xls"
nbligne = Workbooks(donnees).Worksheets("Feuil1").Range("A65536").End(xlUp).Row - 1
rep = "G:\documents\"
maquette = "maquette.xls"
 
Dim cellule As Range, celluledeux As Range, plage As Range
Dim adresse_cellule As String
Dim feuille_maquette As Worksheet
Set plage = Workbooks(donnees).Worksheets("Feuil1").Range("A2:A" & nbligne + 1)
Range("A2").Select
 
  For Each cellule In plage
    If cellule.Value <> "" Then
        If cellule.Value <> cellule.Offset(1, 0).Value Then
            code_etu = cellule.Value
            nom_etu = cellule.Offset(0, 1).Value
 
            'Sauvegarde du fichier etudiant
            Workbooks.Open Filename:=rep & maquette, UpdateLinks:=0
            Application.DisplayAlerts = False
            Workbooks(maquette).SaveAs Filename:=rep & "Livrables\" & code_etu & " " & nom_etu & ".xls", _
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
 
            'Création des feuilles
            Range("C2").Select
            adresse_cellule = cellule.Offset(0, 2).Address
            For Each celluledeux In Workbooks(donnees).Worksheets("Feuil1").Range("C2:" & adresse_cellule)
                Set feuille_maquette = ActiveWorkbook.Worksheets("Feuil1")
                feuille_maquette.Copy Before:=Sheets("Feuil2")
                ActiveSheet.Name = celluledeux.Value
            Next celluledeux
        End If
    End If
  Next cellule
 
End Sub
La création des fichiers excel marche mais pas celle des feuilles... Cela marche seulement pour le premier étudiant, pour le 2ème, vba me créé autant d'onglets qu'il y a de ligne dans mon fichier excel de base. (or je voudrais seulement les onglets maths et physique)
Je n'arrive pas à résoudre mon problème...

Merci d'avance pour votre aide!