LAYOUDE.MesTravauxEns

LAYOUDE.MesTravauxEns

esquisse du traitement des notes des étudiants: programmer en VBA

Sub exo3()
'
'
Dim doc As Document
Dim tabl, tab1, tab2   As Table
Dim entete As HeaderFooter
Dim numEnre, dernierEnre, niv, cmpteur, numTab1, numTab2 As Integer
Dim nbparag, c101, c102, c103, c104, c105, c106, ced1, ced2, ctotal As Integer
Dim nom, credit, niveau As String
Dim appXls As Excel.Application
Dim feuille As Excel.Worksheet
Dim docXls As Object
 
 
Set doc = Application.ActiveDocument
 
' marge du document'''''1 pouce= 2,54 cm= 72 points'''
    doc.PageSetup.RightMargin = InchesToPoints(0.9842)
    doc.PageSetup.LeftMargin = InchesToPoints(0.9842)
    doc.PageSetup.TopMargin = InchesToPoints(0.874)
    doc.PageSetup.BottomMargin = InchesToPoints(1.1259)
 
 
With doc.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Paragraphs.Add
    .Footers(wdHeaderFooterPrimary).Range.Text = "Procès verbal récapitulatif réalisé par MBIENDA JUDITH"
    .Footers(wdHeaderFooterPrimary).Range.Font.Name = "monotype corsiva"
    .Footers(wdHeaderFooterPrimary).Range.Font.Size = 12
    .Footers(wdHeaderFooterPrimary).Range.Font.Color = wdColorDarkBlue
    .Footers(wdHeaderFooterPrimary).Range.Paragraphs(1).Alignment = wdAlignParagraphCenter
     
     
End With
 
Set tabl = doc.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range.Tables.Add(Range:=doc.Sections(1).Headers(wdHeaderFooterPrimary).Range, NumRows:=1, NumColumns:=3)
 
 With tabl.Cell(1, 1)
    .SetWidth ColumnWidth:=InchesToPoints(3), RulerStyle:=wdAdjustProportional
    .Range.Paragraphs.Add
    .Range.Paragraphs(1).Range.Text = "UNIVERSITE DE YAOUNDE I"
    .Range.Paragraphs(1).Range.Font.Size = 9
    .Range.Paragraphs(1).Alignment = wdAlignParagraphCenter
    .Range.Paragraphs(1).Range.Font.Bold = True
    .Range.Paragraphs(1).Range.Font.Name = "Century Schoolbook"
    .Range.Paragraphs(1).SpaceAfter = 0
    .Range.Paragraphs(1).SpaceBefore = 0
 
    .Range.Paragraphs.Add
    .Range.Paragraphs(2).Range.Font.Bold = False
    .Range.Paragraphs(2).Range.Text = "***"
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(3).Range.Text = "ECOLE NORMALE SUPERIEURE"
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(4).Range.Text = "***"
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(5).Range.Text = "DEPARTEMENT D 'INFORMATIQUE ET DES TECHNOLOGIES EDUCATIVES"
    .Range.Paragraphs(5).Range.Font.Bold = True
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(6).Range.Text = "***"
    .Range.Paragraphs(6).Range.Font.Name = "calibri"
    .Range.Paragraphs(6).Range.Font.Italic = True
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(7).Range.Text = "Le Chef de Département"
    .Range.Paragraphs(7).Range.Font.Size = 10
    .Range.Paragraphs(7).Range.Font.Italic = False
     
    .Range.Paragraphs.Add
    .Range.Paragraphs(8).Range.Text = "***"
    .Range.Paragraphs(8).Range.Font.Italic = True
        
        
End With
                 
        '_______ image de l'entete __________________
     
    With tabl.Cell(1, 2)
            .SetWidth ColumnWidth:=InchesToPoints(1.57), RulerStyle:=wdAdjustProportional
            .Range.InlineShapes.AddPicture FileName:=doc.Path & "\logo.gif"
            .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
 
                End With
    '_________cellule 3 _______________
     
    With tabl.Cell(1, 3)
            .SetWidth ColumnWidth:=InchesToPoints(2.75), RulerStyle:=wdAdjustProportional
            .Range.Paragraphs.Add
            .Range.Paragraphs(1).Range.Text = "REPUBLIQUE DU CAMEROUN"
            .Range.Paragraphs(1).Range.Font.Size = 9
            .Range.Paragraphs(1).Alignment = wdAlignParagraphCenter
            .Range.Paragraphs(1).Range.Font.Bold = True
            .Range.Paragraphs(1).Range.Font.Name = "Century Schoolbook"
            .Range.Paragraphs(1).SpaceAfter = 0
            .Range.Paragraphs(1).SpaceBefore = 0
 
            .Range.Paragraphs.Add
            .Range.Paragraphs(2).Range.Text = "REPUBLIC OF CAMEROON"
            .Range.Paragraphs(2).Range.Font.Italic = True
             
             
            .Range.Paragraphs.Add
            .Range.Paragraphs(3).Range.Text = "***"
            .Range.Paragraphs(3).Range.Font.Italic = False
            .Range.Paragraphs(3).Range.Font.Bold = False
             
            .Range.Paragraphs.Add
            .Range.Paragraphs(4).Range.Text = "Paix -Travail - Patrie"
             
            .Range.Paragraphs.Add
            .Range.Paragraphs(5).Range.Text = "Peace -Work - Fatherland"
            .Range.Paragraphs(5).Range.Font.Italic = True
            .Range.Paragraphs(5).Range.Font.Name = "calibri"
             
            .Range.Paragraphs.Add
            .Range.Paragraphs(6).Range.Text = "***"
            .Range.Paragraphs(6).Range.Font.Italic = False
            .Range.Paragraphs(6).Range.Font.Bold = False
            .Range.Paragraphs(6).Range.Font.Name = "Century Schoolbook"
             
             
      End With
 ''____________fin entete___________________
 
'______________ouverture de l'application______________________________________
 
 Set appXls = CreateObject("excel.application")
 Set docXls = appXls.Workbooks.Open(doc.Path & "\NOTES.xls", UpdateLinks:=True, ReadOnly:=False)
 Set feuille = appXls.ActiveWorkbook.ActiveSheet
 '__________________fin de l'ouverture__________________________________________
 
' ____initialisation du numero du premier enrgistrement____________
numEnre = 10
 
'__________recherche dernier enreg_____________
nom = feuille.Application.Cells(numEnre, 2)
While nom <> ""
     numEnre = numEnre + 1
    nom = feuille.Application.Cells(numEnre, 2)
Wend
dernierEnre = numEnre - 1
numEnre = 10
 
'____entete du premier tableau
doc.Paragraphs.Add
 
' gerer le fait kon doit entrer une valeur entiere
 
Do
    niv = InputBox("Entrer le niveau correspondant", "NIVEAU")
Loop While Not IsNumeric(niv)
 
 
 
 
'intitulé du premier tableau
 
doc.Paragraphs(1).Range.Text = "Liste des étudiants admis au niveau  " & niv
doc.Paragraphs(1).Range.Font.Size = 14
doc.Paragraphs(1).Range.Font.Name = "Times New Roman"
doc.Paragraphs(1).Range.Font.Bold = True
doc.Paragraphs(1).Range.Underline = wdUnderlineSingle
doc.Paragraphs(1).Alignment = wdAlignParagraphCenter
doc.Paragraphs(1).SpaceAfter = 0
doc.Paragraphs(1).SpaceBefore = 0
 
'_____création table et insertion des élément
 
doc.Paragraphs.Add
doc.Paragraphs.Add
 
Set tab1 = doc.Tables.Add(Range:=doc.Paragraphs(3).Range, NumRows:=1, NumColumns:=4)
doc.Range.Tables(1).Borders.Enable = True
' paramètre du tableau: largeur préférée= 16cm et retrait gauche = -1,06cm
 
 
'style de la première ligne du premier tableau
tab1.Rows(1).Range.Font.Bold = True
tab1.Rows(1).Range.Font.Size = 10
tab1.Rows(1).Range.Font.Underline = False
 
tab1.Cell(1, 1).Range.Text = "N°"
tab1.Cell(1, 1).SetWidth ColumnWidth:=InchesToPoints(0.7874), RulerStyle:=wdAdjustNone
 
tab1.Cell(1, 2).Range.Text = "NOMS ET PRENOMS"
tab1.Cell(1, 2).SetWidth ColumnWidth:=InchesToPoints(2.1496), RulerStyle:=wdAdjustNone
 
tab1.Cell(1, 3).Range.Text = "MATRICULE"
tab1.Cell(1, 3).SetWidth ColumnWidth:=InchesToPoints(1.3779), RulerStyle:=wdAdjustNone
 
tab1.Cell(1, 4).Range.Text = "DETTE N" & (niv - 1)
tab1.Cell(1, 4).SetWidth ColumnWidth:=InchesToPoints(2.5748), RulerStyle:=wdAdjustNone
 
doc.Paragraphs.Add
doc.Paragraphs.Add
nbparag = doc.Paragraphs.Count
doc.Paragraphs(nbparag).Range.Text = "Liste des étudiants admis à redoubler le niveau  " & (niv - 1)
 
doc.Paragraphs.Add
doc.Paragraphs.Add
Set tab2 = doc.Tables.Add(Range:=doc.Paragraphs(nbparag + 2).Range, NumRows:=1, NumColumns:=4)
doc.Range.Tables(2).Borders.Enable = True
' paramètre du tableau: largeur préférée= 16cm et retrait gauche = -1,06cm
 
doc.Tables(1).Rows.LeftIndent = InchesToPoints(-0.5)
 
'style de la première ligne du deuxième tableau
tab2.Rows(1).Range.Font.Bold = True
tab2.Rows(1).Range.Font.Size = 10
tab2.Rows(1).Range.Font.Underline = False
tab2.Cell(1, 1).Range.Text = "N°"
tab2.Cell(1, 1).SetWidth ColumnWidth:=InchesToPoints(0.7874), RulerStyle:=wdAdjustNone
 
tab2.Cell(1, 2).Range.Text = "NOMS ET PRENOMS"
tab2.Cell(1, 2).SetWidth ColumnWidth:=InchesToPoints(2.1496), RulerStyle:=wdAdjustNone
 
tab2.Cell(1, 3).Range.Text = "MATRICULE"
tab2.Cell(1, 3).SetWidth ColumnWidth:=InchesToPoints(1.3779), RulerStyle:=wdAdjustNone
 
tab2.Cell(1, 4).Range.Text = "DETTE N" & (niv - 1)
 
tab2.Cell(1, 4).SetWidth ColumnWidth:=InchesToPoints(2.5748), RulerStyle:=wdAdjustNone
 
doc.Tables(1).Rows.LeftIndent = InchesToPoints(-0.5)
 
'____________________traitement des données________________
cmpteur = numEnre
numTab1 = 1
numTab2 = 1
 
While cmpteur <> (dernierEnre + 1)
    credit = ""
    ctotal = feuille.Application.Cells(cmpteur, 20)
    If ctotal > 44 Then 'eleve admis
        tab1.Rows.Add
        tab1.Cell(numTab1 + 1, 1) = numTab1
        tab1.Cell(numTab1 + 1, 2) = feuille.Application.Cells(cmpteur, 3)
        tab1.Cell(numTab1 + 1, 3) = feuille.Application.Cells(cmpteur, 2)
             
            If feuille.Application.Cells(cmpteur, 5) = 0 Then
                credit = credit & "INFO 101 "
            End If
             
            If feuille.Application.Cells(cmpteur, 7) = 0 Then
                credit = credit & "INFO 102 "
            End If
             
            If feuille.Application.Cells(cmpteur, 9) = 0 Then
                credit = credit & "INFO 103 "
            End If
             
            If feuille.Application.Cells(cmpteur, 11) = 0 Then
                credit = credit & "INFO 104 "
            End If
             
            If feuille.Application.Cells(cmpteur, 13) = 0 Then
                credit = credit & "INFO 105 "
            End If
             
            If feuille.Application.Cells(cmpteur, 15) = 0 Then
                credit = credit & "INFO 106 "
            End If
             
            If feuille.Application.Cells(cmpteur, 17) = 0 Then
                credit = credit & "SCEDI 101 "
            End If
             
            If feuille.Application.Cells(cmpteur, 19) = 0 Then
                credit = credit & "SCEDI 102 "
            End If
             
        tab1.Cell(numTab1 + 1, 4) = (60 - ctotal) & ":" & credit
        numTab1 = numTab1 + 1
      
     
    Else ' eleve non admis
        tab2.Rows.Add
        tab2.Cell(numTab2 + 1, 1).Range.Text = numTab2
        tab2.Cell(numTab2 + 1, 2).Range.Text = feuille.Application.Cells(cmpteur, 3)
        tab2.Cell(numTab2 + 1, 3).Range.Text = feuille.Application.Cells(cmpteur, 2)
        If feuille.Application.Cells(cmpteur, 5) = 0 Then
                credit = credit & "INFO 101 "
        End If
 
        If feuille.Application.Cells(cmpteur, 7) = 0 Then
                credit = credit & "INFO 102 "
        End If
 
        If feuille.Application.Cells(cmpteur, 9) = 0 Then
                credit = credit & "INFO 103 "
        End If
 
        If feuille.Application.Cells(cmpteur, 11) = 0 Then
                credit = credit & "INFO 104 "
        End If
 
        If feuille.Application.Cells(cmpteur, 13) = 0 Then
                credit = credit & "INFO 105 "
        End If
 
        If feuille.Application.Cells(cmpteur, 15) = 0 Then
                credit = credit & "INFO 106 "
        End If
 
        If feuille.Application.Cells(cmpteur, 17) = 0 Then
                credit = credit & "SCEDI 101 "
        End If
 
        If feuille.Application.Cells(cmpteur, 19) = 0 Then
                credit = credit & "SCEDI 102 "
        End If
 
        tab2.Cell(numTab1 + 1, 4).Range.Text = (60 - ctotal) & ":" & credit
        numTab2 = numTab2 + 1
    End If
     
    cmpteur = cmpteur + 1
     
Wend
             
    '__________fermeture de lapplication exel_____________
    appXls.Workbooks.Close
 
 
End Sub



02/03/2011
0 Poster un commentaire

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 59 autres membres