Copy sans Select en VBA

linkcr15 Messages postés 423 Statut Membre -  
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,

Afin de pouvoir verouiller mes feuilles Excel tout en faisant fonctionner mes macros, je souhaites enlever tous mes .Select dans mon code. Cependant j'ai un problème lors de la refonte d'une copie de plage. Voici mon code avant :

Plage = "A1:M" & derniereLigneTableau
Sheets("Demandes").Activate
Range(Plage).Select
Selection.Copy
Usr_Affiche.Spsheet_Demande.Range("A1").Paste


Que j'ai donc remplacé par :

Sheets("Demandes").Range("A1:M" & derniereLigneTableau).Copy Usr_Affiche.Spsheet_Demande.Range("A1")


Mais mon nouveau code m'affiche l'erreur :

Erreur d'éxécution '1004'
La méthode Copy de la classe Range à échoué

Je ne comprends pas où est mon erreur, est-ce que quelqu'un peut m'aider svp?

A voir également:

1 réponse

pijaku Messages postés 13513 Statut Modérateur 2 763
 
Bonjour,

L'erreur : Erreur d'éxécution '1004'
La méthode Copy de la classe Range à échoué
vient du fait que ta feuille n'est pas la feuille active. Pour contourner ce problème tu peux utiliser un bloc "With - End With" comme ceci :
With Sheets("Demandes")
    .Range("A1:M" & derniereLigneTableau).Copy 
End With
Usr_Affiche.Spsheet_Demande.Range("A1")

Attention à ne pas oublier le point devant l'objet se rapportant à ta feuille.
0