VBA Temps d'exécution trop long

Bonjour a tous et a toutes

J'ai crée un code a partir de l'enregistreur ,puis j'ai modifier quelques lignes et ajouter des petits bout de code trouver sur les diffèrent forum afin d'adapter au mieux a ma situation.

La plus part des commandes sont répétitives sur chaque feuille de mon classeur.

le souci c'est que chez moi sa met environ 1 minute 20 pour s'exécuter et au boulot sa mets 5 minute pour s'exécuter.

Je cherche un moyen de l'epurée ou optimiser. Afin de gagner en d'exécution de temps.

Merci a tous pour votre aide.

Sub refreshALLFEUIILE()
'
' refreshcf Macro
Dim MacroDebut As Date
MacroDebut = Now

Sheets("CF63").Select
Range("SI_CF[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_CF[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("SC46").Select
Range("SI_SC[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_SC[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

Sheets("MM16").Select
Range("SI_MM[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_MM[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("LG87").Select
Range("SI_LG[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_LG[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("BA64&BI64").Select
Range("SI_BI_BA[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_BI_BA[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

Sheets("BD33").Select
Range("SI_BD[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_BD[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("PA64").Select
Range("SI_PA[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_PA[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("AU32").Select
Range("SI_AU[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_AU[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("MTM").Select
Range("SI_MTM[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_MTM[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("RD12").Select
Range("SI_RD[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_RD[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("CC11").Select
Range("SI_CC_2[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_CC[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

Sheets("TO81").Select
Range("SI_TO[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_TO[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("MZ").Select
Range("SI_MZ[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_MZ[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets("BR31").Select
Range("SI_BR[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_BR[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False


Sheets(Array("CF63", "MM16", "SC46", "LG87", "BA64&BI64", "BD33", "PA64", "AU32", "MTM" _
, "RD12", "CC11", "TO81", "MZ", "BR31")).Select
Sheets("CF63").Activate
Cells.Select

Rows("4:45").Select
Selection.RowHeight = 75

With Selection.Font
.Name = "Verdana"
.Size = 36
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
ActiveWorkbook.Save
Sheets("LISTEIMPRETION").Select
MsgBox "Durée d'exécution: " & Format(Now - MacroDebut, "hh:mm:ss")
End Sub

Bonjour,

Les .select sont à proscrire ..

Au lieu de

Sheets("CF63").Select
Range("SI_CF[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_CF[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

Essai ceci pour voir si ça fonctionne bien ...

Sheets("CF63").Range("SI_CF[[#Headers],[GR SI]]").ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_CF[[#Headers],[GR SF]]").ListObject.QueryTable.Refresh BackgroundQuery:=False

Si ça fonctionne bien, il y aura les autres à corriger ...

ric

Bonjour,

comme ric te l'a dit les .select sont à 90% inutiles.

après ça il y a d'autre améliorations possible,

une boucle FOR peut être mise en place pour tous ces blocs :

Sheets("CF63").Select
Range("SI_CF[[#Headers],[GR SI]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Range("SF_CF[[#Headers],[GR SF]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

et dans ton WITH ne laisser que ce qui est susceptible de changer.

Cordialement

Rechercher des sujets similaires à "vba temps execution trop long"