Temps d'execution Macro

  • Initiateur de la discussion Initiateur de la discussion emmanuelavril
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

emmanuelavril

Guest
Bonjour à tous,

Voilà, j'ai développé une petite macro qui sur une certaine base de données me permet de supprimer les lignes qui ne m'interessent pas:

Dim y As Long
Dim Var
Var = Sheets("GENERAL").Range("B20")
For y = Sheets("NAVISION").Range("C65536").End(xlUp).Row To 2 Step -1
If (Sheets("NAVISION").Cells(y, 3).Value > Var And Sheets("NAVISION").Cells(y, 21).Value = "Yes") Then Rows(y).Delete
If (Sheets("NAVISION").Cells(y, 3).Value <= Var And Sheets("NAVISION").Cells(y, 21).Value = "No") Then Rows(y).Delete
Next

Cependant le temps d'execution peut prendre pas mal de temps si il y beaucoup de lignes. (parfois 8 ou 9 minutes)

Connaitriez-vous un moyen de diminuer ce temps d'execution?

Merci beaucoup

++
 
Re : Temps d'execution Macro

bonjour emmanuelavril,


Essaye avec ce code :
VB:
Option Explicit


Public Sub Macro()
Dim mem1 As Long, mem2 As Long, mem3 As Long
    
    'mémoriser les options d'excel et les désactiver
    mem1 = Application.ScreenUpdating: Application.ScreenUpdating = False           'raffraichissement de l'affichage
    mem2 = Application.EnableEvents: Application.EnableEvents = False               'gestion des évènements
    mem3 = Application.Calculation: Application.Calculation = xlCalculationManual   'mode de calcul
    
    'Exécuter la macro
    On Error Resume Next
     MacroInt
    On Error GoTo 0
    
    'rétablir les options d'excel
    Application.ScreenUpdating = mem1
    Application.EnableEvents = mem2
    Application.Calculation = mem3
    
End Sub


Private Sub MacroInt()
Dim y As Long, Var As Excel.Range

    Var = Sheets("GENERAL").Range("B20")
    For y = Sheets("NAVISION").Range("C65536").End(xlUp).Row To 2 Step -1
        If (Sheets("NAVISION").Cells(y, 3).Value > Var And Sheets("NAVISION").Cells(y, 21).Value = "Yes") Then Rows(y).Delete
        If (Sheets("NAVISION").Cells(y, 3).Value <= Var And Sheets("NAVISION").Cells(y, 21).Value = "No") Then Rows(y).Delete
    Next
    
End Sub
a+
 
Dernière édition:
Re : Temps d'execution Macro

Bonjour emmanuelavril, Mromain

Cela aurait été bien que Emmanuel nous donne la différence de temps entre les 2 codes, histoire de participer un peu à la communauté 🙂.

Bonjour MJ13,

C'est ce que je me suis dit également... 😱

emmanuelavril, si jamais tu repasse par là, peux-tu nous donner cette différence de temps d'exécution stp ?
Merci

a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
910
Réponses
4
Affichages
732
Retour