Copie d'un range d'un workbook vers un autre
Bonjour,
Je cherche à automatiser la copie d'une partie d'une feuille d'un classeur source vers une feuille d'un classeur destination. La macro se trouve sur le classeur destination. J'ai cherché à le faire sans ouvrir le fichier source mais ça me semble tellement plus simple en l'ouvrant que j'ai choisi cette méthode. Ma feuille source contient 21 colonnes mais je ne veux copier que les 7 premières. De même, ma feuille destination contient 21 colonnes mais je ne veux écraser que les 7 premières. Le nombre de lignes est variable.
Voila le code que j'ai écris :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Private Sub CommandButton1_Click()
Dim Chemin As String, Fichier As String
Dim Wrdarray() As String
'Recuperation du chemin complet (chemin + nom fichier)
sChemin = Application.GetOpenFilename
Wrdarray() = Split(sChemin, "\")
'Extraction du nom de fichier seul
Fichier = Wrdarray(UBound(Wrdarray))
'Extraction du chemin seul
For i = 0 To UBound(Wrdarray())
Chemin = Chemin & "\" & Wrdarray(i)
Next i
Chemin = Mid(Chemin, 2)
'On determine la derniere ligne de ce fichier et on supprime de la colonne 1 à 7 et de la ligne 7 à la fin
findest = ThisWorkbook.Sheets("Ecarts JTZ").Range("A7").End(xlShiftDown)
ThisWorkbook.Sheets("Ecarts JTZ").Range(Cells(7, 1), Cells(findest, 7)).ClearContents
'On ouvre le fichier source
Workbooks.Open (sChemin)
finsrc = Workbooks(Fichier).Sheets("blabla").Range("A8").End(xlShiftDown)
'On copie le fichier source dans ce fichier
Workbooks(Fichier).Sheets("blabla").Range(Cells(6, 1), Cells(finsrc, 7)).Copy Destination:=ThisWorkbook.Sheets("Ecarts JTZ").Range("A7")
'Fermeture du fichier source
Workbooks(Fichier).Close
End sub |
La ligne :
Code:
Workbooks(Fichier).Sheets("blabla").Range(Cells(6, 1), Cells(finsrc, 7)).Copy Destination:=ThisWorkbook.Sheets("Ecarts JTZ").Range("A7")
renvoi l'erreur 1004 : Erreur definie par l'application ou par l'objet.
Je ne comprends pas trop pourquoi, surtout que j'utilise exactement la même syntaxe 3 lignes au dessus...
Merci d'avance pour votre aide