Copy sans Select en VBA

Fermé
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 - 29 mai 2012 à 11:28
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 mai 2012 à 09:24
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?

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
30 mai 2012 à 09:24
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