copie d'une plage de cellules d'un fichier sur un autre

RichardS

XLDnaute Junior
Bonjour à tous,

Je possède un fichier F1 contenant une feuille S1 dont je veux copier la plage cells(2,1) à cells(2,5) ou B1 : B5 ou même la ligne 2 entière.
Sur le fichier F2, feuille S2 sur la ligne 1 ou à partir de la cellule A1.

Avec une seule cellule, je sais faire fonctionner :
workbooks("F1").activate
sheets("S1").cells(2,1).select
selection.copy
workbooks("F2").activate
sheets("S2").cells(1,1).select
activesheets.paste

Mais cela ne fonctionne plus lorsque je souhaite copier une plage de cellule ou une ligne entière.

POURQUOI ?

Merci pour vos réponses.
 

RichardS

XLDnaute Junior
CA marche !
Super.
Par contre :
ça fonctionne encore avec :
workbooks("F1").sheets("S1").rows(1).copy workbooks("F2").sheets("S2").cells(1,1)
mais cela ne fonctionne plus avec :
workbooks("F1").sheets("S1").range(cells(2,1),cells(2,5)).copy workbooks("F2").sheets("S2").cells(1,1)

POURQUOI ?
 

RichardS

XLDnaute Junior
CA marche !
Super.
Par contre :
ça fonctionne encore avec :
workbooks("F1").sheets("S1").rows(1).copy workbooks("F2").sheets("S2").cells(1,1)
mais cela ne fonctionne plus avec :
workbooks("F1").sheets("S1").range(cells(2,1),cells(2,5)).copy workbooks("F2").sheets("S2").cells(1,1)

POURQUOI ?
Il me sort une erreur (erreur définie par l'application et par l'objet)
Mais ta réponse me sort une sacré épine du pied. Mais je suis perfectionniste et j'aime bien comprendre. Pourquoi refuse t-il la méthode RANGE ?
 

Jacky67

XLDnaute Barbatruc
Il me sort une erreur (erreur définie par l'application et par l'objet)
Mais ta réponse me sort une sacré épine du pied. Mais je suis perfectionniste et j'aime bien comprendre. Pourquoi refuse t-il la méthode RANGE ?
Bonjour,
A défaut de JM (Hello);)
Il est certainement parti pour l'apéro :):)
Il faut spécifier le chemin complet au 2 "Cells"
VB:
Workbooks("F1").Sheets("S1").Range(Workbooks("F1").Sheets("S1").Cells(2, 1), Workbooks("F1").Sheets("S1").Cells(2, 5)).Copy Workbooks("F2").Sheets("S2").Cells(5, 1)
OU
VB:
With Workbooks("F1")
  With .Sheets("S1")
    .Range(.Cells(2, 1), .Cells(2, 5)).Copy Workbooks("F2").Sheets("S2").Cells(1, 1)
  End With
End With
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16