Bonjour à tous,
J'ai un petit souci et ne parviens pas à trouver la solution sur la toile.
Peut-être pourriez-vous m'aider ?
J'ai un fichier Excel, vue d'une db SQL, dans lequel j'ai créé divers table basée sur des requêtes PowerQuery pour analyse.
L'ouverture de ce fichier est très très lente (presque 10 min),(après test) se ne sont pas mes queries, mais bien la connexion au données qui ralentit l'ouverture du fichier.
Pour solution, j'ai pensé : créé une macro dans le workbook_Open qui contrôlerait la dernière fois ou la base a été sauvée sur le fichier Si > 2h mettre à jour, sinon ne pas importer la vue SQL.
Mon code fonctionne mais uniquement si je la lance Wb ouvert , si le wb est fermé et que je l'ouvre la connexion se fait tout 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 Private Sub Workbook_Open() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual If TimeDiff(Now(), LastModified) / 60 > 120 Then ' On importe uniquement l'ensemble des données si Maj date de moins de 2H ActiveWorkbook.Connections("t_DataBase").OLEDBConnection.BackgroundQuery = False ActiveWorkbook.Connections("t_DataBase").Refresh Call addWeekNum Call RefreshQueries End If Application.ScreenUpdating = False Application.Calculation = xlCalculationAutomatic End Sub
Auriez-vous une astuce pour palier à ce souci, du type bloqué la connexion/refresh du wb et l'activé si la condition est remplie ?
D'avance Merci,
MFoxy
Partager