Bonjour le forum,
Le sujet : Je veux créer un fichier Excel qui ne contient qu'un bouton macro. La macro doit traiter d'autres fichiers Excel et produire un fichier de résultat. Tous ces fichiers se trouveront dans un autre répertoire que celui de ma macro.
Le problème : Alors que je charge sans problème des feuilles des fichiers sources dans mon fichier de résultat, au moment de travailler sur ce dernier, il semble qu'Excel considère que le fichier de travail est... celui de la macro
Le code :
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
33
34
35
36
37
38 'Je fixe le répertoire des fichiers sources qui doit être celui de travail travail Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker) Repertoire.Show Chemin = Repertoire.SelectedItems(1) & "\" 'Je vise dans une première variable mon fichier résultat qui sera celui qui commence par "NAT" FichierNat = Dir(Chemin & "\NAT*.*") 'Je vise dans une autre variable mon premier fichier source FichierDep = Dir(Chemin & "\*.xls") i = 1 'J'ouvre mon fichier de travail Workbooks.Open Filename:=FichierNat 'Pour chaque fichier source du répertoire, je copie sa première feuille que j'ajoute à mon fichier résultat Do If FichierDep <> FichierNat Then Workbooks.Open Filename:=Chemin & FichierDep Sheets(1).Copy Before:=Workbooks(FichierNat).Sheets(i) Windows(FichierDep).Activate ActiveWindow.Close i = i + 1 End If 'J'avance au prochain fichier source FichierDep = Dir() 'La boucle s'arrête au dernier fichier source Loop Until FichierDep = "" 'La commande sélectionne bien toutes les feuilles de mon fichier résultat ActiveWorkbook.Sheets.Select 'WTF?? Je me retrouve sur le fichier de la macro! : / Range("G4:G35").Copy Range("N4")Précision : Ca marche si je fais une boucle en utilisant "Worksheet(i)" avant chaque commande (ex : Worksheet(i)Range("G4:G35").Copy Range("N4")).
Mais je voulais éviter de faire une boucle (il me semblait que traiter globalement les feuilles était plus rapide mais à discuter) et, sinon, je voulais éviter de répéter tout le temps "Worksheet(i)"
Merci d'avance pour votre aide![]()
Partager