Bonjour Aalex, bonjour le forum,
Écrit dans un module standard, ce code serait passé sans planter. Mais il est lancé depuis un composant onglet (Feuil1(Feuil1). Il a planté car dans ce cas tu ne peux pas sélectionner une plage en dehors de l'onglet qui contient la macro sans spécifier le nom de l'onglet au préalable.
Au départ l'onglet de la macro est Feuil1 donc :
Sheets("Feuil1").Select
Range("A7:G7").Select
ne pose pas de problème. Ensuite tu sélectionnes l'onglet Feuil2 et là, il faudrait écrire :
Sheets("Feuil2").Select
Sheets("Feuil2").Range("A2:G2").Select
ou
Sheets("Feuil2").Select
Activesheet.Range("A2:G2").Select
Mais il faut absolument éviter les Select inutiles qui ne font que ralentir l'exécution du code !... Ton code peut s'écrire :
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("A7:G7").Copy
Sheets("Feuil2").Range("A2:G2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub