Bonjour,

Je souhaite copier le contenu d'une feuille dans une autre feuille qui se trouve dans un autre classeur. J'utilise le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Windows("MonFichier.xls"). Activate
    Sheets("Sheet1").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("MonAutreFichier.xls").Activate
    Sheets("Sheet1").Select
    Cells.Select
    ActiveSheet.Paste
Cela fonctionne correctement.

Maintenant je dois utiliser cette fonction plusieurs fois donc au lien d'utiliser des noms de fichiers/feuilles en dur j'utilise des variables que je passe a la fonction:

les variables:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
ShtToCopy = "Sheet1"
 
SourceFile = "c:\files\source.xls"
ThisFile= "c:\other files\dest.xls"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
    Workbooks.Open SourceFile
    Windows(SourceFile).Activate
    Sheets(ShtToCopy).Select
    Cells.Select
    Application.CutCopyMode = False
    Sheets(ShtToCopy).Select
    Selection.Copy
    Windows(ThisFile).Activate
    Sheets(ShtToCopy).Select
    Cells.Select
    ActiveSheet.Paste
Mais ca ne fonctionne pas, il bloque sur l'instruction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Windows(SourceFile).Activate
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
run-time error 9, subscript out of range
J'ai l'impression que l'objet "Windows" ne supporte pas le nom de variable en tant qu'argument...

Merci pour votre aide