Bonjour,
J'ai une Macro qui appliquée à un fichier fonctionne parfaitement mais lorsque je l'appel par une autre macro dans le but de l'appliquer sur tout les fichiers d'un repertoire la colonne qui est censée être le resultat l'applcation de la fonction demeure vide.
La Macro "M" applique la "Macro6" sur tout les fichier du dossier "Dossier" qui contient 2 fichiers(juste pour tester en réalité il en contient plus) dont les cellule sont toutes de type
9,45,59,65664,0.283,-0.471
Voici le code des deux Macro "M" et Macro"
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 Sub M() ' ' FolderName = "C:\Users\SONY\Desktop\Dossier\" If Right(FolderName, 1) <> Application.PathSeparator Then FolderName = FolderName & Application.PathSeparator Fname = Dir(FolderName & "*.csv") 'loop through the files Do While Len(Fname) With Workbooks.Open(FolderName & Fname) ' here comes the code for the operations on every file the code finds 'HERE if you want to execute the second macro for every file in the loop Macro6 End With ' go to the next file in the folder Fname = Dir Loop End Sub
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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297 Sub Macro6() ' ' Macro6 Macro ' ' Columns("A:A").Select Selection.Copy Columns("D:D").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("D:D").Select Application.CutCopyMode = False Selection.Copy Columns("G:G").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=PERSONAL.XLSB!Changer()" ActiveCell.FormulaR1C1 = "=PERSONAL.XLSB!Changer(RC[-3])" Range("G1").Select Selection.AutoFill Destination:=Range("G1:G2"), Type:=xlFillDefault Range("G1:G2").Select Range("G2").Select Selection.AutoFill Destination:=Range("G2:G2560"), Type:=xlFillDefault Range("G2:G2560").Select Range("I2559").Select ActiveWindow.ScrollRow = 2533 ActiveWindow.ScrollRow = 2528 ActiveWindow.ScrollRow = 2506 ActiveWindow.ScrollRow = 2479 ActiveWindow.ScrollRow = 2447 ActiveWindow.ScrollRow = 2415 ActiveWindow.ScrollRow = 2384 ActiveWindow.ScrollRow = 2357 ActiveWindow.ScrollRow = 2316 ActiveWindow.ScrollRow = 2284 ActiveWindow.ScrollRow = 2253 ActiveWindow.ScrollRow = 2221 ActiveWindow.ScrollRow = 2189 ActiveWindow.ScrollRow = 2149 ActiveWindow.ScrollRow = 2117 ActiveWindow.ScrollRow = 2072 ActiveWindow.ScrollRow = 2027 ActiveWindow.ScrollRow = 1981 ActiveWindow.ScrollRow = 1927 ActiveWindow.ScrollRow = 1855 ActiveWindow.ScrollRow = 1782 ActiveWindow.ScrollRow = 1715 ActiveWindow.ScrollRow = 1656 ActiveWindow.ScrollRow = 1602 ActiveWindow.ScrollRow = 1552 ActiveWindow.ScrollRow = 1502 ActiveWindow.ScrollRow = 1448 ActiveWindow.ScrollRow = 1394 ActiveWindow.ScrollRow = 1330 ActiveWindow.ScrollRow = 1276 ActiveWindow.ScrollRow = 1235 ActiveWindow.ScrollRow = 1190 ActiveWindow.ScrollRow = 1149 ActiveWindow.ScrollRow = 1100 ActiveWindow.ScrollRow = 1041 ActiveWindow.ScrollRow = 991 ActiveWindow.ScrollRow = 951 ActiveWindow.ScrollRow = 910 ActiveWindow.ScrollRow = 874 ActiveWindow.ScrollRow = 842 ActiveWindow.ScrollRow = 806 ActiveWindow.ScrollRow = 770 ActiveWindow.ScrollRow = 733 ActiveWindow.ScrollRow = 702 ActiveWindow.ScrollRow = 670 ActiveWindow.ScrollRow = 639 ActiveWindow.ScrollRow = 602 ActiveWindow.ScrollRow = 557 ActiveWindow.ScrollRow = 516 ActiveWindow.ScrollRow = 471 ActiveWindow.ScrollRow = 440 ActiveWindow.ScrollRow = 412 ActiveWindow.ScrollRow = 376 ActiveWindow.ScrollRow = 345 ActiveWindow.ScrollRow = 313 ActiveWindow.ScrollRow = 290 ActiveWindow.ScrollRow = 263 ActiveWindow.ScrollRow = 236 ActiveWindow.ScrollRow = 214 ActiveWindow.ScrollRow = 182 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 73 ActiveWindow.ScrollRow = 55 ActiveWindow.ScrollRow = 37 ActiveWindow.ScrollRow = 24 ActiveWindow.ScrollRow = 15 ActiveWindow.ScrollRow = 1 Columns("G:G").Select Selection.Copy Columns("D:D").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("G:G").Select Application.CutCopyMode = False Selection.ClearContents ActiveWindow.SmallScroll Down:=-6 Columns("D:D").Select Selection.Copy Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("D:D").Select Application.CutCopyMode = False Selection.ClearContents ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 15 ActiveWindow.ScrollRow = 33 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 82 ActiveWindow.ScrollRow = 114 ActiveWindow.ScrollRow = 141 ActiveWindow.ScrollRow = 213 ActiveWindow.ScrollRow = 259 ActiveWindow.ScrollRow = 335 ActiveWindow.ScrollRow = 367 ActiveWindow.ScrollRow = 403 ActiveWindow.ScrollRow = 435 ActiveWindow.ScrollRow = 466 ActiveWindow.ScrollRow = 502 ActiveWindow.ScrollRow = 534 ActiveWindow.ScrollRow = 575 ActiveWindow.ScrollRow = 611 ActiveWindow.ScrollRow = 643 ActiveWindow.ScrollRow = 679 ActiveWindow.ScrollRow = 715 ActiveWindow.ScrollRow = 765 ActiveWindow.ScrollRow = 814 ActiveWindow.ScrollRow = 864 ActiveWindow.ScrollRow = 918 ActiveWindow.ScrollRow = 977 ActiveWindow.ScrollRow = 1031 ActiveWindow.ScrollRow = 1094 ActiveWindow.ScrollRow = 1153 ActiveWindow.ScrollRow = 1207 ActiveWindow.ScrollRow = 1266 ActiveWindow.ScrollRow = 1320 ActiveWindow.ScrollRow = 1370 ActiveWindow.ScrollRow = 1420 ActiveWindow.ScrollRow = 1469 ActiveWindow.ScrollRow = 1514 ActiveWindow.ScrollRow = 1551 ActiveWindow.ScrollRow = 1582 ActiveWindow.ScrollRow = 1614 ActiveWindow.ScrollRow = 1646 ActiveWindow.ScrollRow = 1677 ActiveWindow.ScrollRow = 1713 ActiveWindow.ScrollRow = 1749 ActiveWindow.ScrollRow = 1781 ActiveWindow.ScrollRow = 1822 ActiveWindow.ScrollRow = 1853 ActiveWindow.ScrollRow = 1885 ActiveWindow.ScrollRow = 1926 ActiveWindow.ScrollRow = 1962 ActiveWindow.ScrollRow = 1993 ActiveWindow.ScrollRow = 2025 ActiveWindow.ScrollRow = 2052 ActiveWindow.ScrollRow = 2084 ActiveWindow.ScrollRow = 2120 ActiveWindow.ScrollRow = 2152 ActiveWindow.ScrollRow = 2174 ActiveWindow.ScrollRow = 2201 ActiveWindow.ScrollRow = 2228 ActiveWindow.ScrollRow = 2246 ActiveWindow.ScrollRow = 2273 ActiveWindow.ScrollRow = 2305 ActiveWindow.ScrollRow = 2337 ActiveWindow.ScrollRow = 2373 ActiveWindow.ScrollRow = 2405 ActiveWindow.ScrollRow = 2445 ActiveWindow.ScrollRow = 2477 ActiveWindow.ScrollRow = 2508 ActiveWindow.ScrollRow = 2531 ActiveWindow.ScrollRow = 2526 ActiveWindow.ScrollRow = 2504 ActiveWindow.ScrollRow = 2472 ActiveWindow.ScrollRow = 2436 ActiveWindow.ScrollRow = 2409 ActiveWindow.ScrollRow = 2382 ActiveWindow.ScrollRow = 2355 ActiveWindow.ScrollRow = 2323 ActiveWindow.ScrollRow = 2292 ActiveWindow.ScrollRow = 2251 ActiveWindow.ScrollRow = 2197 ActiveWindow.ScrollRow = 2120 ActiveWindow.ScrollRow = 2043 ActiveWindow.ScrollRow = 1948 ActiveWindow.ScrollRow = 1840 ActiveWindow.ScrollRow = 1686 ActiveWindow.ScrollRow = 1546 ActiveWindow.ScrollRow = 1406 ActiveWindow.ScrollRow = 1280 ActiveWindow.ScrollRow = 1194 ActiveWindow.ScrollRow = 1067 ActiveWindow.ScrollRow = 959 ActiveWindow.ScrollRow = 850 ActiveWindow.ScrollRow = 742 ActiveWindow.ScrollRow = 624 ActiveWindow.ScrollRow = 516 ActiveWindow.ScrollRow = 403 ActiveWindow.ScrollRow = 249 ActiveWindow.ScrollRow = 109 ActiveWindow.ScrollRow = 1 Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _ TrailingMinusNumbers:=True Range("A1").Select Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove ActiveCell.FormulaR1C1 = "Att1" Range("B1").Select ActiveCell.FormulaR1C1 = "Att2" Range("C1").Select ActiveCell.FormulaR1C1 = "Att3" Range("D1").Select ActiveCell.FormulaR1C1 = "Att4" Range("E1").Select ActiveCell.FormulaR1C1 = "Att5" Range("F1").Select ActiveCell.FormulaR1C1 = "Att6" Range("G1").Select ActiveCell.FormulaR1C1 = "Class" Range("G2").Select ActiveCell.FormulaR1C1 = "0" Selection.AutoFill Destination:=Range("G2:G2561"), Type:=xlFillDefault Range("G2:G2561").Select ActiveWindow.SmallScroll Down:=-24 ActiveWindow.ScrollRow = 2505 ActiveWindow.ScrollRow = 2496 ActiveWindow.ScrollRow = 2487 ActiveWindow.ScrollRow = 2478 ActiveWindow.ScrollRow = 2460 ActiveWindow.ScrollRow = 2442 ActiveWindow.ScrollRow = 2424 ActiveWindow.ScrollRow = 2401 ActiveWindow.ScrollRow = 2378 ActiveWindow.ScrollRow = 2347 ActiveWindow.ScrollRow = 2301 ActiveWindow.ScrollRow = 2256 ActiveWindow.ScrollRow = 2207 ActiveWindow.ScrollRow = 2130 ActiveWindow.ScrollRow = 2044 ActiveWindow.ScrollRow = 1976 ActiveWindow.ScrollRow = 1917 ActiveWindow.ScrollRow = 1850 ActiveWindow.ScrollRow = 1782 ActiveWindow.ScrollRow = 1687 ActiveWindow.ScrollRow = 1596 ActiveWindow.ScrollRow = 1506 ActiveWindow.ScrollRow = 1411 ActiveWindow.ScrollRow = 1325 ActiveWindow.ScrollRow = 1244 ActiveWindow.ScrollRow = 1172 ActiveWindow.ScrollRow = 1072 ActiveWindow.ScrollRow = 986 ActiveWindow.ScrollRow = 923 ActiveWindow.ScrollRow = 864 ActiveWindow.ScrollRow = 805 ActiveWindow.ScrollRow = 756 ActiveWindow.ScrollRow = 706 ActiveWindow.ScrollRow = 661 ActiveWindow.ScrollRow = 620 ActiveWindow.ScrollRow = 575 ActiveWindow.ScrollRow = 539 ActiveWindow.ScrollRow = 498 ActiveWindow.ScrollRow = 462 ActiveWindow.ScrollRow = 381 ActiveWindow.ScrollRow = 349 ActiveWindow.ScrollRow = 322 ActiveWindow.ScrollRow = 295 ActiveWindow.ScrollRow = 277 ActiveWindow.ScrollRow = 250 ActiveWindow.ScrollRow = 232 ActiveWindow.ScrollRow = 218 ActiveWindow.ScrollRow = 204 ActiveWindow.ScrollRow = 191 ActiveWindow.ScrollRow = 177 ActiveWindow.ScrollRow = 164 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 114 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 42 ActiveWindow.ScrollRow = 19 ActiveWindow.ScrollRow = 1 End Sub
Le soucis est dans l'appel de la fonction changer mais je n'arrive pas à le regler.
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 Public Function Changer(ByVal CelluleEtudiee As Range) As Variant Dim ValeurPartielle As Variant Dim ValeurCellule As Variant Dim I As Long Dim PresenceE As Boolean ' Recherche caractère e Changer = "" ValeurCellule = "" PresenceE = False For I = 1 To Len(CelluleEtudiee) Select Case Mid(CelluleEtudiee, I, 1) Case "," If PresenceE = True Then ValeurCellule = ValeurCellule & Val(ValeurPartielle) & "," PresenceE = False Else ValeurCellule = ValeurCellule & ValeurPartielle & "," End If ValeurPartielle = "" Case "e" PresenceE = True ValeurPartielle = ValeurPartielle & Mid(CelluleEtudiee, I, 1) Case Else ValeurPartielle = ValeurPartielle & Mid(CelluleEtudiee, I, 1) End Select Next I If PresenceE = True Then Changer = ValeurCellule & Val(ValeurPartielle) Else Changer = ValeurCellule & ValeurPartielle End If End Function
J'éspère que quelqu'un peut m'aider.
Je vous remercie énormement pour votre temps et votre attention et votre patience.
Partager