Bonjour
J'ai actuellement un répertoire intitulé "2015" qui comprend 52 répertoires intitulés de S01 à S52 et contenant chacun un classeur s'appelant "Synthese.xlsm".
Ce fichier à une macro dénommée "Actualiser", servant à mettre à jour les liens contenus dedans.
Vu la quantité importe de liens présents, il faut environ 6 minutes pour que la macro finisse sa tache. Vu la quantité de fichiers à actualiser, ca me prendrait trop de temps (car je ne peux pas bosser lors de l'actualisation de la macro, excel est figé).
Pourriez-vous m'aider à créer une macro qui :
- se place dans le repertoire 2015
- ouvre le fichier "Synthese.xlsm" du repertoire S01
- y lancer la macro "actualisation"
- enregistre et sort du fichier
puis recommence mais avec le répertoire S02 etc
comme ça le soir, je lance cette macro, comme ça le lendemain en arrivant les fichiers sont prêts!
J'ai bossé sur cette macro mais :
- elle ouvre et lance bien la macro en question mais ne sauvegarde pas et clos directement une fois que la macro a fini son travail, je ne sais donc pas si tout a fonctionné comme il faut.
- elle n'ouvre qu'un seul fichier et ne lance pas le suivant situé ailleurs
Pouvez-vous m'aider?
Je vous remercie par avance
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 Option Explicit Sub RunMacro_NoArgs() 'Macro purpose: To demonstrate using the run method to execute 'a macro without arguments from another workbook Dim wbTarget As Workbook, _ CloseIt As Boolean 'Attempt to set the target workbook to a variable. If an error is 'generated, then the workbook is not open, so open it On Error Resume Next Set wbTarget = Workbooks(Sheets(1).Range("B9")) If Err.Number <> 0 Then 'Open the workbook Err.Clear Set wbTarget = Workbooks.Open(Sheets(1).Range("B8") _ & "\" & Sheets(1).Range("B9")) CloseIt = True End If 'Check and make sure workbook was opened If Err.Number = 1004 Then MsgBox "Sorry, but the file you specified does not exist!" _ & vbNewLine & Sheets(1).Range("B8") & "\" & Sheets(1).Range("B9") Exit Sub End If On Error GoTo 0 'Run the macro! (You will need to update "SimpleMacro" to the 'name of the macro you wish to run) Application.Run (wbTarget.Name & "!Actualiser") If CloseIt = True Then 'If the target workbook was opened by the macro, close it wbTarget.Close savechanges:=False Else 'If the target workbook was already open, reactivate this workbook ThisWorkbook.Activate End If End Sub
Partager