Création du fichier automatisé

LOEMBA - Modifié le 7 janv. 2025 à 16:18
jordane45 Messages postés 38389 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 janvier 2025 - 7 janv. 2025 à 16:19

Je suis un débutant, aidez-moi à rendre ces codes automatiques dans un fichier automatisé sur Excel. Merci : 

Sub CreerFichierExcel()

    Dim wb As Workbook

    Dim ws As Worksheet

    Dim classes As Variant

    Dim trimestres As Variant

    Dim i As Integer

    ' Étape 1: Créer le fichier Excel

    Set wb = Workbooks.Add

    ' Étape 2: Créer la feuille "SAISIE LISTE DE LA CLASSE"

    Set ws = wb.Worksheets(1)

    ws.Name = "SAISIE LISTE DE LA CLASSE"

    ws.Cells(1, 1).Value = "Numéro"

    ws.Cells(1, 2).Value = "Nom"

    ws.Cells(1, 3).Value = "Prénom"

    ws.Cells(1, 4).Value = "Date de naissance"

    ws.Cells(1, 5).Value = "Sexe"

    ws.Cells(1, 6).Value = "Classe"

    ' Étape 3: Créer les feuilles pour chaque classe

    classes = Array("CP", "CE1", "6ème") ' Ajoutez d'autres classes si nécessaire

    For i = LBound(classes) To UBound(classes)

        Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))

        ws.Name = classes(i)

        ws.Cells(1, 1).Value = "Numéro"

        ws.Cells(1, 2).Value = "Nom"

        ws.Cells(1, 3).Value = "Prénom"

        ws.Cells(1, 4).Value = "Date de naissance"

        ws.Cells(1, 5).Value = "Sexe"

        ws.Cells(1, 6).Value = "Classe"

        ws.Cells(1, 6).Value = classes(i) ' Remplir la colonne Classe avec le nom de la classe

    Next i

    ' Étape 4: Créer les feuilles pour les trimestres

    trimestres = Array("PREMIER TRIMESTRE", "DEUXIEME TRIMESTRE", "TROISIEME TRIMESTRE")

    For i = LBound(trimestres) To UBound(trimestres)

        Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))

        ws.Name = trimestres(i)

        ws.Cells(1, 1).Value = "Numéro"

        ws.Cells(1, 2).Value = "Nom"

        ws.Cells(1, 3).Value = "Prénom"

        ws.Cells(1, 4).Value = "Matière"

        ws.Cells(1, 5).Value = "Note"

    Next i

    ' Étape 5: Créer le modèle de relevé de note

    Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))

    ws.Name = "BULLETIN DE NOTES"

    ws.Cells(1, 1).Value = "Nom de l'élève"

    ws.Cells(2, 1).Value = "Classe"

    ws.Cells(3, 1).Value = "Trimestre"

    ws.Cells(4, 1).Value = "Matières"

    ws.Cells(5, 1).Value = "Notes obtenues"

    ws.Cells(6, 1).Value = "Moyenne générale"

    ws.Cells(7, 1).Value = "Appréciation"

    ' Étape 6: Créer une feuille pour les moyennes annuelles

    Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))

    ws.Name = "MOYENNES ANNUELLES"

    ws.Cells(1, 1).Value = "Numéro"

    ws.Cells(1, 2).Value = "Nom"

    ws.Cells(1, 3).Value = "Prénom"

    ws.Cells(1, 4).Value = "Moyenne du Premier Trimestre"

    ws.Cells(1, 5).Value = "Moyenne du Deuxième Trimestre"

    ws.Cells(1, 6).Value = "Moyenne du Troisième Trimestre"

    ws.Cells(1, 7).Value = "Moyenne Annuelle"

    ' Étape 7: Créer un menu principal

    Set ws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))

    ws.Name = "MENU PRINCIPAL"

    ' Ajouter des liens vers chaque feuille (facultatif)

    Dim j As Integer

    Dim sheetNames As Variant

    sheetNames = Array("SAISIE LISTE DE LA CLASSE", "CP", "CE1", "6ème", _

                       "PREMIER TRIMESTRE", "DEUXIEME TRIMESTRE", _

                       "TROISIEME TRIMESTRE", "BULLETIN DE NOTES", _

                       "MOYENNES ANNUELLES")

    For j = LBound(sheetNames) To UBound(sheetNames)

        With ws

            .Cells(j + 1, 1).Value = sheetNames(j)

            .Hyperlinks.Add Anchor:=.Cells(j + 1, 2), Address:="", _

                SubAddress:=sheetNames(j) & "!A1", TextToDisplay:="Aller à " & sheetNames(j)

        End With

    Next j

End Sub

EDIT MODERATION : Ajout des balises de code

A voir également:

1 réponse

jordane45 Messages postés 38389 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 janvier 2025 4 730
7 janv. 2025 à 16:19

Bonjour,

Qu'est-ce qui ne va pas avec ce code ?

Qu'est-ce que tu entends par "rendre automatique" ??

NB: J'ai ajouté les balises de code à ton message.. ça le rend plus lisible


0