Re,
Ce n'est facile, pour moi, de me rappeler ce que j'avait fait il y a 3 semaines. Je vais essayer. Remplace le code précédent par celui-ci :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
DerLig = Sheets(Target.Value).Range("A65536").End(xlUp).Row + 1
Sheets(Target.Value).Range("A" & DerLig) = Cells(Target.Row, 2)
Sheets(Target.Value).Range("C" & DerLig) = Cells(3, Target.Column)
Sheets(Target.Value).Select
End Sub
Comme ça, la feuille dans laquelle la dernière ligne a été rajouté se passe au premier plan pour compléter ta saisie des données.
En ce qui concerne l'explication du code, voici quelques lignes peut être utiles pour ta compréhension :
Ce code (un code évèmentiel , ici le changement du contenu de la cellule, lié à la feuille Excel) marche quand on sélectionne une cellule dans la feuille source et on CHANGE le contenu de cette cellule.
Target : la cellule sélectionnée pour un choix du nom de la feuille dans la feuille source,
1ère ligne : gestion des erreurs par exemple sélection d'une feuille qui n'existe pas,
2ème ligne : cherche et trouve la dernière cellule non vide de la colonne A de la feuille destination qui a été choisie dans la liste déroulante de la feuille source afin de remplir les données.
3ème ligne : On insère le contenu de la cellule de la colonne B de la feuille source dans la colonne A de la feuille destination.
4ème ligne : On insère le contenu de la cellule de la ligne 3 de la même colonne de sélection et modification de la feuille source dans la colonne C de la feuille destination.
5ème ligne : sert à sélectionner la feuille de destination qui a été dernièrement remplie.