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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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