Bonsoir à touets et à tous,

J'espère que vous allez bien. Je reveins vers vous au sujet d'un problème concernant l'appel de macro dans une macro. La macro pincipale s'appelle MCBE_database qui a pour but de créer un fichier excel comme base de données.

Cette macro appelle la macro 'ouverture_fichier' qui a pour but d'ouvrir un fichier ( ). Cette même macro appelle la macro "process sheet" qui a pour but de mettre à jour des liens Bloomberg (logiciel de finance) présents dans le fichier ouvert. Enfin la macro ProcessSheet appelle la macro saveSheet() pour enregistrer le fichier.


Alors si on résume, MCBE Database() appelle ouverture_fichier() qui appelle process_sheet() qui appelle savesheet().

Ci dessous, je vous mets le début de la macr principale à savoir MCBE database :

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
Sub MCBE_database()
    Dim Cn As ADODB.Connection
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim fichier As String, Cellule As String, Feuille As String
    Dim ranking As Sheets
    Dim derniere As Cell
    Dim ISIN As Range
    Dim premiere_ligne, derniere_ligne, i As Integer
    Dim wbExcel As Workbook
 
    'ouverture du fichier MCBE
 
Call ouverture_fichier
Ensuite voici la macro ouverture fichier()

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
Sub ouverture_fichier()
    Dim wbExcel As Excel.Workbook
 
    Set wbExcel = Application.Workbooks.Open("G:\Equipe\Convertibles\Recherche\Interne\Quantitative-screening\___Ranking Mirabaud MCBE & MCBG__\Global\MCBE_Scoring & Ranking.xls")
 
'On appelle le module ProcessSheet
    Application.OnTime (Now + TimeValue("00:00:10")), "processSheet"
    Application.Calculation = xlCalculationAutomatic
 
'On confirme la volonté d'ecraser la version actuelle du fichier
    Application.DisplayAlerts = True
 
'On coupe la liaison avec le fichier Excel exterieur
    Set wbExcel = Nothing
 
End Sub
Et voici enfin les deux macros processsheet() & savesheet()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub processSheet()
'Macro pour rafraichier les liens Bloomberg et enregistrer le fichier
     Application.Run "RefreshEntireWorksheet"
     Application.OnTime (Now + TimeValue("00:00:15")), "saveSheet"
End Sub
 
Sub saveSheet()
'Macro pour enregistrer le fichier
Workbooks("MCBE_Scoring & Ranking.xls").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
Set wbExcel = Nothing
End Sub
Le problème est lorsque j’exécute tout ce petti monde, et bien la ligne suivante de la macro ouverture_fichier() s'execute mal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.OnTime (Now + TimeValue("00:00:10")), "processSheet"
Elle s’exécute mal car elle ne repart pas vers la macro processsheet et je ne comprends pas pourquoi. Par contre quand je prends la macro ouverture_fichier + processsheet +save_sheet dans un nouveau tableur ça marche parfaitement....

Auriez-vous une petite idée ?