Bonjour,
Je viens demander de l'aide à propos de ce code VB Excel sur lequel je buche depuis un certain temps.
Je veux exécuter une série de Macros avec la fonction Call tout en restant sur la feuille actuelle (mode silencieux); ne pas afficher (ou parcourir) les feuilles concernées par le code car ne souhaitant pas que ces feuilles soient vues.
Le souci est lié à la Macro qui actualise les données dans les tableaux Excel avec les requêtes Power query; quoi que je fasse, ces tableaux de données s'affichent toujours.
Comment y remédier?
Code à exécuter en premier:
Dim RunTime As Double
Sub RunFirstMacro()
Dim StartingSheet As Worksheet
Set StartingSheet = ActiveSheet
Dim Response As Integer
Response = MsgBox("Are you sure you want to run this macro? This action cannot be undone. Temps estimé: 05 minutes", _
vbYesNo + vbQuestion + vbDefaultButton2, "Confirm Execution")
If Response = vbNo Then
Exit Sub
End If
Application.ScreenUpdating = False
Call RefreshQueryTable
Call InsertionSommeSiEnsCAClientsJAN
Call InsertionSommeSiEnsRGTClientsJAN
Call InsertionSommeSiEnsENGFssJAN
Call InsertionSommeSiEnsPAYFssJAN
StartingSheet.Activate
Set StartingSheet = Nothing
MsgBox "First macro has finished! Le processus va maintenant ajuster les colonnes. Cliquez sur Ok. Merci de patienter encore une dizaine de secondes."
RunTime = Now + TimeValue("00:00:02")
Application.OnTime RunTime, "RunSecondMacro"
Application.ScreenUpdating = True
End Sub
Code pour rafraîchir les tableaux des données (Power query) posant problème:
Sub RefreshQueryTable()
ThisWorkbook.Sheets("Engagements").ListObjects("Engagement__2").QueryTable.Refresh BackgroundQuery:=False
ThisWorkbook.Sheets("Op_Bque").ListObjects("Op_Bque__2").QueryTable.Refresh BackgroundQuery:=False
ThisWorkbook.Sheets("CLOTURE_C.A._JAN").ListObjects("Fact_Clts_Jan").QueryTable.Refresh BackgroundQuery:=False
ThisWorkbook.Sheets("CLOTURE_CAISSE_JAN").ListObjects("Tableau_DonnéesExternes_1").QueryTable.Refresh BackgroundQuery:=False
End Sub
Au besoin, je peux joindre les fichiers Excel avec tous les codes.
Cordialement.