Demande d'optimisation d'un code VBA
papish_4732
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
qui pourrait m'aider à réduire le temps d'exécution de cette macro svp ?
Ca prend trop de temps pour s'exécuter.
Sub TurnOffStuff()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayStatusBar = False
ActiveSheet.DisplayPageBreaks = False
End Sub
Sub TurnOnStuff()
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayStatusBar = True
ActiveSheet.DisplayPageBreaks = True
End Sub
Sub somprod()
Dim i As Double
Dim plage1, plage2, plage3, plage4 As Range
Worksheets("LR ASSURVIE 2021").Activate
Call TurnOffStuff
i = 4
Set plage1 = Sheets("SINISTRES assurvie").Range("AN2:AN300000")
Set plage2 = Sheets("SINISTRES assurvie").Range("AO2:A0300000")
Set plage3 = Sheets("SINISTRES assurvie").Range("AP2:AP300000")
Set plage4 = Sheets("SINISTRES assurvie").Range("Y2:Y300000")
Do While Cells(i, 2) <> ""
Cells(i, 17).Value = Application.SumIfs(plage4, plage1, Cells(i, 4), plage2, 1, plage3, 2021)
Loop
Call TurnOnStuff
End Sub
Merci cordialement !
qui pourrait m'aider à réduire le temps d'exécution de cette macro svp ?
Ca prend trop de temps pour s'exécuter.
Sub TurnOffStuff()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayStatusBar = False
ActiveSheet.DisplayPageBreaks = False
End Sub
Sub TurnOnStuff()
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayStatusBar = True
ActiveSheet.DisplayPageBreaks = True
End Sub
Sub somprod()
Dim i As Double
Dim plage1, plage2, plage3, plage4 As Range
Worksheets("LR ASSURVIE 2021").Activate
Call TurnOffStuff
i = 4
Set plage1 = Sheets("SINISTRES assurvie").Range("AN2:AN300000")
Set plage2 = Sheets("SINISTRES assurvie").Range("AO2:A0300000")
Set plage3 = Sheets("SINISTRES assurvie").Range("AP2:AP300000")
Set plage4 = Sheets("SINISTRES assurvie").Range("Y2:Y300000")
Do While Cells(i, 2) <> ""
Cells(i, 17).Value = Application.SumIfs(plage4, plage1, Cells(i, 4), plage2, 1, plage3, 2021)
Loop
Call TurnOnStuff
End Sub
Merci cordialement !
A voir également:
- Demande d'optimisation d'un code VBA
- Code ascii - Guide
- Optimisation pc - Accueil - Utilitaires
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
peux-tu donner suite, ou marquer comme résolues, les trois autres discussions que tu as ouvertes dans ce forum?
peux-tu donner suite, ou marquer comme résolues, les trois autres discussions que tu as ouvertes dans ce forum?
papish_4732
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
D'accord ce sera fai
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
>
papish_4732
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
quand?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
peux-tu donner quelques informations?
combien de lignes de données as-tu?
combien de temps cela prend-t-il?
dans quel contexte fais-tu cela?
dois-tu exécuter cela plusieurs fois?
combien de lignes de données as-tu?
combien de temps cela prend-t-il?
dans quel contexte fais-tu cela?
dois-tu exécuter cela plusieurs fois?