Bonjourà vous et merci de votre présence.
Je me tire les cheveux depuis hier sur une ligne de programme qui en théorie ne me paraissait pas compliquée.
Je vous explique plus concrétement, j'ai crée une macro permettant de créer autant de fichiers Excel qu'il y a de directions (Onglet Liste_Direction)
La création de ces fichiers se déroule correctement mais au moment de réactiver le classeur nouvellement crée le code erreur 9 apparait.
La ligne de commande qui ressort est celle-ci: Workbooks(Nom_Fichier).Activate
Je vous joins également l'intégralité du code et la fichier en question.
Je vous remercie beaucoup pour les olutions que vous pourrez m'apporter.
Bonne journée à vous
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 Sub MAJ() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim Nom_Fichier As Variant Dim Extention As Variant Dim Nom_direction As Variant Dim finfeuille As Variant Dim Fin_Direction As Variant Dim i As Integer Dim wbMyWb As Workbook ' Filtre Direction Fin_Direction = Feuil6.Range("a1").End(xlDown).Row For i = 2 To Fin_Direction Range("$A$1:$L$65000").AutoFilter Field:=1, Criteria1:=Feuil6.Range("a" & Fin_Direction) ' Export et copie des fichiers Nom_direction = "COUTS_DETAILLES_" & Feuil6.Range("a" & Fin_Direction).Value Extention = ".xlsx" Nom_Fichier = Nom_direction + Extention ''On créer l'objet Excel Set xlApp = CreateObject("Excel.Application") ''On défini le nombre d'onglets (ici 2) xlApp.SheetsInNewWorkbook = 2 ''On ajoute un classeur Set xlBook = xlApp.Workbooks.Add ''On donne un nom au classeur xlBook.SaveAs ("N:\DAPE\3 DCGS\CANA\3- Suivi Enveloppes\09-2014\EXTRACTION_COUTS_DETAILLES\EXPORTS_COUTS_DETAILLES\" & Nom_direction) ''On rend le classeur visible xlApp.Visible = True ''On créer l'objet onglet dans le nouveau classeur créé Set xlSheet = xlBook.Worksheets(1) ''On affecte un nom aux l'onglets xlSheet.Name = "COUTS_DETAILLES" ''on libère l'objet onglet pour pouvoir en créer un nouveau ... etc Set xlSheet = Nothing Set xlSheet = xlBook.Worksheets(2) xlSheet.Name = "ANALYSES-COMMENTAIRES" Windows("COUTS_DETAILLES_PAR_DIRECTION.xlsm").Activate Feuil4.Range("a1:l65000").Copy Workbooks(Nom_Fichier).Activate Sheets("COUTS_DETAILLES").Activate Range("a2").Paste Next End Sub
Partager