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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
Sub collectenote()
'le but de la macro est de collecter la note finale de l'étudiant
'et créer une feuille de résumé avec tri alphabétique
'création de la feuille de synthèse
'Worksheets("synthèse").Add
Range("B1").Value2 = "Nom de l'étudiant"
Range("C1").Value2 = "Moyenne"
'Cells("B2").Activate
'vérification du nombre d'onglet
'balayage de chaque feuille pour y récupérer les informations sauf
'"Toutes fac"
'"Toutes fac (4)"
i = 2 'index de ligne dans la feuille synthèse
valeurrecherchée = "Résultat /20"
For Each c In Worksheets
nom = c.Name
colmoy = 0
lignemoy = 0
If c.Name <> "synthèse" And c.Name <> "Toutes fac" And c.Name <> "Toutes fac (4)" Then
Worksheets(c.Name).Activate
'Test pour voir s'il y a une valeur : on copie alors les valeurs
'recherche de la moyenne
colmoy = Cells.Find(valeurrecherchée, , , , xlByRows, xlPrevious).Column 'trouve la derniere ligne ecrite sans tenir compte des lignes d'entête
lignemoy = Cells.Find(valeurrecherchée, , , , xlByRows, xlPrevious).Row + 1 'trouve la derniere colonne ecrite
moyenne = Cells(lignemoy, colmoy).Value2
'collage de la note dans la feuille de synthèse en face du nom de l'étudiant
Worksheets("synthèse").Cells(i, 2).Value2 = nom
Worksheets("synthèse").Cells(i, 3).Value2 = moyenne
'définition d'une zone et impression de celle-ci
lastrow = Cells.Find("*", , , , xlByRows, xlPrevious).Row 'trouve la derniere ligne ecrite sans tenir compte des lignes d'entête
lastcol = Cells.Find("*", , , , xlByRows, xlPrevious).Column 'trouve la derniere colonne ecrite
Worksheets(c.Name).PageSetup.PrintArea = Range(Cells(1, 1), Cells(lastrow + 4, lastcol + 2)).Address
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
'impression dans un fichier
Application.ActivePrinter = "PDFCreator sur Ne00:"
Selection.PrintOut Copies:=1, ActivePrinter:="PDFCreator sur Ne00:", _
Collate:=True
i = i + 1
End If
Next c
Worksheets("synthèse").Activate
End Sub |
Partager