Copy sans Select en VBA

linkcr15 Messages postés 362 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
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 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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