Problème fichier de correction

Bonjour,

On m'a fourni un document contenant du VBA destiné à automatiser la saisie de documents de correction. Malheureusement, celui-ci ne fonctionne pas correctement.

Malgré le temps que j'y ai consacré et mes connaissances limitées en VBA, je n'ai pas réussi à trouver la solution.

Je vous remercie par avance pour votre aide.

21grille.xlsm (145.57 Ko)

Bonjour tsantsa

Malheureusement, celui-ci ne fonctionne pas correctement.

Alors, ne bouge pas, je vais sortir ma boule de cristal pour te dire ce qui ne va pas

Plus sérieusement, peux-tu nous décrire ce qui ne fonctionne pas ?

A+

Si je remplis un groupe d'élèves dans "base de données", normalement ce fichier doit me générer toutes les pages des différentes épreuves "EP1, EP2 et EP3" avec le nom des candidats, mais là ça ne fonctionne pas. Que dit ta boule de cristal ? Merci TuExcel2fr

Bonjour,

A moins que la "boule d cristal" de JExcel2Fr ai trouvé, cela n'est pas assez clair je pense. Quelques questions :

- Dans la feuille Base données, est-ce que vous remplissez aussi les colonnes C à F ou est-ce que l'on créé les 4 feuilles sur chaque nom mentionné en colonne A et B
- Les feuilles Epx actuelles sont bien des feuilles Modèle ?
- Quel est le bouton actuel sur la feuille auquel vous attribuez cette action ?
- Pouvez m'expliquer la raison pour laquelle vous mettez une valeur Faux ou Vrai en J9 ?

Autre point : la macro Sub RAZ_BDD() sert à quoi ? C'est identique à la macro Sub RAZ_FEUILLE()

Crdlt

Bonsoir, je ne peux pas répondre, ma connaissance est très limitée, mais je trouve ce principe de fichier pratique dans l'idée. Normalement on saisit la liste des élèves, puis le VBA génère les 4 feuilles par candidat (EP1, EP2 et EP3) qui servent à utiliser les barèmes par candidat et mettre une note. Normalement un report des notes se retrouve sur la page de garde dans les cellules C6/F7. Merci pour votre aide.

Hello,

c'est bizarre parce que chez moi en Excel 2021 cela à l'air de fonctionner .

J'ai rempli la feuille Base de données comme ceci :

grille1

J'ai cliqué sur le bouton Génération Feuille pour la classe. Il m'a bien généré 5 feuilles supplémentaires par candidat. Exemple :

grille2

Les macros sont-elles activées sur ton Excel ?

Ami calmant, J.P

Bonjour,

Pas simple de répondre efficacement sans savoir comment vous fonctionnez avec le fichier et par rapport à votre premier post on ne sait pas trop où vous avez essayé de modifier dans les codes de programmation.

Si on considère votre dernier post concernant la génération des feuilles, j'ai refait le code qui permet de générer les feuilles suivant le nom des élèves. Faites ceci dans votre fichier :
1. Allez dans l'éditeur VBA
2. Dans le module AB_Ajout_Eleve, remplacez toutes les lignes de code Sub Generation_Feuille_Eleve() par celles-ci :

Option Explicit
Sub Generation_Feuille_Eleve()
Dim feuille()
Dim Nom_Eleve As String, Prenom_Eleve As String, k As String, NomFeuille As String
Dim plg As Byte, dlg As Byte, i As Byte, j As Byte

feuille = Array("Page_de_garde", "EP1", "EP2_Centre", "EP2_Entreprise", "EP3")

plg = 6
dlg = Feuil4.Range("A" & Rows.Count).End(xlUp).Row
If dlg = 5 Then Exit Sub

If WorksheetFunction.CountA(Feuil4.Range("A6:A" & dlg)) <> WorksheetFunction.CountA(Feuil4.Range("B6:B" & dlg)) Then
    MsgBox "Veuillez attribuer un prénom à chaque nom de la colonne NOM", vbCritical, "ALERTE"
    Exit Sub
End If

On Error GoTo fin
With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

For i = plg To Feuil4.Range("A" & Rows.Count).End(xlUp).Row
    Nom_Eleve = Feuil4.Range("A" & i).Value
    Prenom_Eleve = Feuil4.Range("B" & i).Value

    For j = 0 To UBound(feuille)
        Select Case j
            Case Is = 0: k = "PdG"
            Case Is = 1: k = "EP1"
            Case Is = 2: k = "EP2C"
            Case Is = 3: k = "EP2E"
            Case Is = 4: k = "EP3"
        End Select

        NomFeuille = k & Nom_Eleve & "_" & Left$(Prenom_Eleve, 1)

        If Not FeuilleExiste(NomFeuille) Then
            Sheets(feuille(j)).Copy after:=Sheets(Sheets.Count)
            ActiveSheet.Name = k & "_" & Nom_Eleve & "_" & Left$(Prenom_Eleve, 1)
        End If
        With ActiveSheet
            Select Case k
                Case "PdG": .Range("C10") = Nom_Eleve: .Range("C11") = Prenom_Eleve
                Case "EP3": .Range("D12") = Nom_Eleve: .Range("D13") = Prenom_Eleve
                Case Else: .Range("D7") = Nom_Eleve: .Range("D8") = Prenom_Eleve
            End Select
        End With
    Next j
Next i

'Pas_MaJ2:
'    Sheets("Base_de_Données").Select
'    Call MaJ_Evaluation
'    Range("J9") = True
'    Application.ScreenUpdating = True
fin:
With Application
    .EnableEvents = True
    .ScreenUpdating = True
end with
End Sub

Function FeuilleExiste(NomFeuille As String) As Boolean 'verifier si la feuille créé n'existe pas
Dim x As Object
FeuilleExiste = False
    On Error Resume Next
    Set x = ThisWorkbook.Sheets(NomFeuille)
    If Err = 0 Then FeuilleExiste = True Else FeuilleExiste = False
End Function

3. Associez à ce code le bouton "Generation feuille pour la classe" qui se trouve sur la feuille Base de données

Faites un test.
SI ok je vous donnerai le code pour supprimer les feuilles que j'ai revu.

Crdlt


EDIT : @Jurassic Pork : Désolé je n'avais pas vu que vous aviez posté. Mais c'est vrai que le code original fonctionne aussi.

Rechercher des sujets similaires à "probleme fichier correction"