RANGE avec page et cellule

J'ai fait une macro qui contient une référence : range("codes!A1"). Si je mets ma macro dans un module général pas de pb. Si je la mets dans le module d'une feuille la méthode range de l'objet échoue. Pourquoi ?

Remplace Range("codes!A1") par sheets("codes").range("A1")
Implicitement, Range("...") correspond à Me.Range("..."), dans les modules de feuille. "Me", c'est en l'occurence la feuille de calcul à laquelle est attaché le module. Donc si le module est rattaché à la feuille "Feuil1", VBA interprète : range("codes!A1") .. comme : Sheets("Feuil1").Range("codes!A1") D'où l'erreur tout à fait normale que tu as rencontrée sur la méthode Range.
Il faut donc systématiquement séparer la feuille de l'objet plage: Sheets("...").Range("...) quand cette plage n'appartient pas à la feuille "propriétaire" du module. Ce problème ne se pose pas dans les modules standard, dont le seul "parent" implicite est l'application.

Auteur :

Mots clefs associés à cette page : , ,