J'applique sur plusieurs fichiers dans des répertoires différents la même macro de mise en page.
Tous les fichiers dans les différents répertoires portent le même nom : biggest_files.xls
Le fichier, une fois la macro de mise en page effectuée est fermé, et la macro ouvre le fichier suivant pour faire de même.

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
Sub auto_open()
Dim book As Excel.Workbook
Dim excelfile As String
Dim Myrep(0 To 300) As String
 
 
 
j = 1
 
    Cells.Select
    Selection.ClearContents
    Range("A1").Select
 
listeDossiersEtSousDossiers
 
Workbooks("MacroBiggestFilesFS07.xls").Activate
 
 
Cells(1, 1).Select
On Error Resume Next
 
Do
 
Application.pause
 
    Myrep(j) = Cells(j, 1).Value + "\ZXFILES_REPORT\biggest_files.xls"
 
    Set appxls = CreateObject("Excel.Sheet")
    appxls.Application.Workbooks.Open Myrep(j)
 
    If Err.Number = 0 Then
 
        Rows("1:4").Select
            Range("A4").Activate
            Selection.Delete Shift:=xlUp
            Range("A1:F1").Select
            Range("F1").Activate
            Selection.Font.Bold = True
            Columns("C:C").Select
 
            Selection.Replace What:=" MB", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
                :=Array(1, 1), TrailingMinusNumbers:=True
            Range("H1").Select
            ActiveCell.FormulaR1C1 = "TOTAL (Mo)"
            With ActiveCell.Characters(Start:=1, Length:=10).Font
                .Name = "Arial"
                .FontStyle = "Gras"
                .Size = 10
                .Strikethrough = False
                .Superscript = False
                .Subscript = False
                .OutlineFont = False
                .Shadow = False
                .Underline = xlUnderlineStyleNone
                .ColorIndex = xlAutomatic
            End With
            Range("I1").Select
            ActiveCell.FormulaR1C1 = "=SUM(C[-6])"
            Range("H3").Select
            ActiveCell.FormulaR1C1 = "TOTAL (Go)"
            Range("I3").Select
            ActiveCell.FormulaR1C1 = "=SUM(R[-2]C/1000)"
            Range("H3").Select
            Selection.Font.Bold = True
            Range("I3").Select
            Selection.NumberFormat = "0.0"
            Range("I1").Select
            Selection.NumberFormat = "0"
            Range("H3:I3,H1:I1").Select
            Range("H1").Activate
            Selection.Borders(xlDiagonalDown).LineStyle = xlNone
            Selection.Borders(xlDiagonalUp).LineStyle = xlNone
            With Selection.Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
 
            Columns("C:C").Select
            With Selection
                .HorizontalAlignment = xlRight
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            Range("C1").Select
            With Selection
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            With Selection
                .HorizontalAlignment = xlLeft
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            ActiveCell.FormulaR1C1 = "Size (Mo)"
            Columns("A:F").Select
            Range("F1").Activate
            Selection.AutoFilter
            Columns("A:A").Select
            Selection.ColumnWidth = 33.57
            Columns("B:B").ColumnWidth = 33.71
            Columns("C:C").EntireColumn.AutoFit
            Columns("D:D").EntireColumn.AutoFit
            Columns("E:E").ColumnWidth = 22.14
            Columns("F:F").EntireColumn.AutoFit
                Columns("D:D").Select
            With Selection
                .HorizontalAlignment = xlRight
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            Range("D1").Select
            With Selection
                .HorizontalAlignment = xlLeft
                .VerticalAlignment = xlBottom
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
 
            Columns("C:C").Select
            Selection.NumberFormat = "0.0"
            Columns("C:C").Select
            Range("A1:F23").Sort Key1:=Range("C1"), Order1:=xlDescending, Header:= _
                xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                DataOption1:=xlSortNormal
            Range("A1").Select
            Columns("A:F").Select
            Range("F1").Activate
            Selection.Borders(xlDiagonalDown).LineStyle = xlNone
            Selection.Borders(xlDiagonalUp).LineStyle = xlNone
            With Selection.Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With Selection.Borders(xlInsideHorizontal)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            Range("A1").Select
            Columns("C:C").Select
            Range("A1:F893").Sort Key1:=Range("C1"), Order1:=xlDescending, Header:= _
                xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                DataOption1:=xlSortNormal
            Range("A1").Select
            Columns("D:D").Select
            Selection.NumberFormat = "m/d/yyyy;@"
            Selection.NumberFormat = "mm/dd/yyyy;@"
            Range("A1").Select
                Columns("D:D").Select
            Range("A1:F218").Sort Key1:=Range("D1"), Order1:=xlAscending, Header:= _
                xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                DataOption1:=xlSortNormal
            Range("A1").Select
 
                Columns("C:C").Select
    Range("A1:F2683").Sort Key1:=Range("C1"), Order1:=xlDescending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortTextAsNumbers
    Range("A1").Select
 
            Application.DisplayAlerts = False
                 ActiveWorkbook.SaveAs Filename:=Myrep(j) _
                , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                ReadOnlyRecommended:=False, CreateBackup:=False
 
                        ActiveWorkbook.Close
                        Application.DisplayAlerts = True
 
 
         Else
         Err.Clear
 
    End If
 
    Set appxls = Nothing
 
    j = j + 1
 
    Workbooks("MacroBiggestFilesFS07.xls").Activate
 
Loop While Cells(j, 1) <> ""
  Application.DisplayAlerts = False
Workbooks("MacroBiggestFilesFS07.xls").Close SaveChanges:=False
              Application.DisplayAlerts = True
 
Excel.Application.Close
 
End Sub


Parfois (souvent...) la macro ouvre laisse ouvert le 1er fichier ce qui empêche donc d'ouvrir le 2ème et d'exécuter la macro dessus.

Je ne parviens pas à trouver de solution.
Peut-être faut-il laisser le temps au 1er de se fermer en effectuant une pause ou autre chose mais je ne connais pas la syntaxe.
J'ai essayé avec application.ontime mais il me renvoi systméatiquement argument non facultatif et je ne suis pas vraiment sûre que ça résolve mon problème.