Traitement dynamique des notes

Bonsoir tous,

je viens vers vous pour solliciter votre aide pour la mise en place d'un outil de traitement des notes des élèves d'un établissement.

A cet effet, je dispose de trois feuilles nommées: cours; bd et saisie.

- la feuille "cours" contient un ensemble de matière exécuté dans des classes.

- la feuille "bd" est la base de données des élèves dudit établissement

- la feuille "saisie" est l'espace de saisie.

Mon soucis se résume en les points suivants

1-je voudrais que lorsque je clique sur le nom d'une matière dans la feuille " cours", la feuille "saisie" s'ouvre avec le nom de la matière et les informations des élèves associés à cette matière.

2-Ensuite lorsque je saisie aussi les notes dans la feuille "saisie" que ces notes soient automatiquement remplies dans la feuille "bd".

Merci pour tout

20exemple.xlsx (11.70 Ko)

Bonjour,
Petit pb bizarre. A essayer :

13exemple.xlsm (17.91 Ko)

Si problème, le code est le suivant :

Dans la feuille "cours" :

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Sheets("saisie").Cells(5, 3) = Target.Value
    Sheets("saisie").Activate
End Sub

Dans la feuille "saisie" :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim nL As Integer, wS1 As Worksheet, wS2 As Worksheet
    Dim index As String, i As Integer, j As Integer

    nL = Sheets("saisie").Cells(Rows.Count, "B").End(xlUp).Row ' Lignes contenant le nom d'un élève
    If Target.Column < 6 Or Target.Column > 6 Or Target.Row < 9 Or Target.Row > nL Then Exit Sub

    Set wS1 = Sheets("bd")
    Set wS2 = Sheets("saisie")
    index = wS2.Cells(Target.Row, 1)
    nL = wS1.Cells(Rows.Count, "B").End(xlUp).Row

    ' On recherche la ligne dans la bd
    For i = 2 To nL
        If wS1.Cells(i, 1) = index Then
            For j = 6 To 9
                If wS1.Cells(1, j) = wS2.Range("$C$5") Then
                    wS1.Cells(i, j) = Target.Value
                    wS1.Cells(i, j).HorizontalAlignment = xlCenter
                End If
            Next j
            Exit For
        End If
    Next i
    wS1.Activate
End Sub

Bonjour Optimix.

Je voudrais vous dire infiniment merci. Votre proposition est très intéressante.

Cependant, un petit soucis semble apparaitre dans l'exécution.:

Après avoir cliquer sur le nom de la matière dans la feuille "cours", les noms des élèves associés à cette matière n'apparaissent pas dans la feuille "saisie".

Aussi, voudrais-je savoir si c'était possible, que la colonne note de la feuille de saisie se vide à chaque fois qu'on a une nouvelle matière sélectionnée.

Merci et Merci infiniment

Vider la colonne des notes dans la feuille de saisie ne pose aucun problème. En revanche, il n'est pas possible de travailler sérieusement sur un fichier factice. Les sources d'erreur sont beaucoup trop nombreuses. Par exemple, les classes 7 à 9 (matière 4) n'existent pas dans votre bD.

Changez les noms et mettez en ligne un fichier réel si vous voulez avoir un truc qui tient la route. Et vous aurez d'autres propositions, donc tout bénèf.

Bonsoir Optimix

Veuillez trouver ci joint un fichier exemple qui pourra expliquer mes attentes.

Comme je l'ai mentionné plus haut, des matières sont enseignés dans des classes qui contiennent des élèves. Je souhaite faire la saisie des notes par matière. Donc au clique sur une matière dans la feuille "cours", les élèves qui sont inscrits dans les classes qui font cette matière sont affichés dans la feuille "saisie" pour qu'on renseigne leur note.

Merci à vous

Bonjour unction01, essayez ceci pour la 1ère partie :

13exemple.xlsm (24.34 Ko)

Bonjour Optimix

Première partie fonctionne à merveille. C'est super.

Merci infiniment.

Essaye ceci pour les parties 1 et 2.

14exemple.xlsm (27.06 Ko)
Rechercher des sujets similaires à "traitement dynamique notes"