Private Sub Worksheet_Change(ByVal Target As Range)
' permet de déclencher la macro à chaque fois qu'il y a une modification sur la feuille : "Feuil1" (car la macro est sur la "Feuil1")
' C'est pourquoi j'ai renommé tes onglets exactement pareil que les noms figurant dans tes listes de validation
If Target.Column = 5 And Target.Row > 7 Then
' Si la colonne où a eu lieu la modification est la colonne 4 et le numéro de la ligne strictement supérieur à 6 alors
With Sheets(Cells(Target.Row, 4).Value)
' lorsque dans les lignes ci-dessous je mettrais un point devant cela voudra dire que je travail sur la feuille dont le nom est égal à celui figurant dans la cellule : colonne 3, ligne : celle où à eu lieu la modification
.Range("D" & .[D65536].End(xlUp).Row + 1) = Range("A" & Target.Row) & " " & Range("b" & Target.Row)
.Range("e" & .[D65536].End(xlUp).Row) = Range("c" & Target.Row)
' Cellule : "Feuil..." colonne A, ligne : à la suite de la dernière -> écrire ce qu'il y a
' Cellule : "Feuil1" colonne A, ligne : celle où a eu lieu la modification
' Bref : recopier le Nom de la ligne où à eu lieu la modification, sur l'onglet concerné
'.Range("B" & .[B65536].End(xlUp).Row + 1) = Range("B" & Target.Row)
' Bref : recopier le Prénom de la ligne où à eu lieu la modification, sur l'onglet concerné
End With
' Fin du With, bref je ne vais plus travailler sur la Feuil..., donc je ferme ma "balise" : With
End If
' Fin du si, bref ma condition Si() s'arrête ici, donc je ferme ma "balise" : If
End Sub
' Fin de la macro, donc je ferme ma "balise" : Private Sub