Est-il possible de nous fournir dans un fichier Excel quelques lignes du fichier de base ?
Code:
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 43 44 45 46 47 48 49 50 51
| Dim Etudiants As Collection
Dim Matieres As Collection
Const rep = "G:\documents\"
Const maquette = "maquette.xls"
Private Sub matiere(V As String)
On Error Resume Next
Matieres.Add V, "Name_" & V
On Error GoTo 0
End Sub
Private Sub Etudiant(cd As String, etu As String)
On Error Resume Next
Etudiants.Add cd & " " & etu, "Name_" & cd & "_" & etu
On Error GoTo 0
End Sub
Sub scan()
Dim Myrange As Range
Dim L As Long
Set Etudiants = New Collection
Set Matieres = New Collection
Set Myrange = ActiveSheet.Range("A1").CurrentRegion
For L = 2 To Myrange.Rows.Count
Etudiant Trim("" & Myrange(L, 1)), Trim("" & Myrange(L, 2))
matiere Trim("" & Myrange(L, 3))
Next
For L = 1 To Etudiants.Count
CreerClasseur Etudiants(L)
Next
End Sub
Private Sub CreerClasseur(Name)
Dim MyClasseur As Workbooks
Set MyClasseur = ActiveWorkbook.Application.Workbooks.Add(rep & maquette)
CreerFeuille MyClasseur
MyClasseur.SaveAs rep & "Livrables\" & Name
MyClasseur.Close False
End Sub
Private Sub CreerFeuille(Classeur As Workbook)
Dim M As Long
Dim feuille_maquette As Worksheet
Dim FeuilleNew As Worksheet
For M= 1 To Matieres.Count
Classeur.Sheets(1).Select
Set FeuilleNew = Classeur.Sheets.Add
Set feuille_maquette = Classeur.Worksheets("Feuil1")
feuille_maquette.Copy Before:=FeuilleNew
FeuilleNew.Name = Matieres(M)
Next
End Sub |