Bonjour Gpilard, bonjour le forum,
La regle d'or en VBA c'est déviter autant que tu le peux les Select ou autre Activate qui ne font que ralentir l'exécution du code et sont source de platages !...
Quand tu copies/colles sur deux onglets différent il faut toujours spécifier l'onglet avant la plage (Range). La syntaxe est :
OngletSource.Range("Ta_plage_source").Copy OngletDestination.Range("Ta_cellule_destination")
Aucun Select !...
J'utilise très souvent des variables qui rallongent le code mais ont le mérite de la rendre plus lisible :
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set OS = Worksheets("Feuil1") 'définit l'onglet source OS (à adapter à ton cas)
Set OD = Worksheets("Notation") 'définit l'onglet destination OD (à adapter à ton cas)
'définit la cellule de destination DEST (A1 si A1 est vide, sinon, la première cellule vide de la colonne A de l'onglet OD)
If OD.Range("A1") = "" Then Set DEST = OD.Range("A1") Else Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
OS.Range("A2:L7").Copy DEST 'copie la plage A2:L7 de l'onglet source et la colle dans DEST
End Sub