Gagner du temps sans boucle for

Signaler
-
Messages postés
15403
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 janvier 2021
-
Bonjour le forum,

J'ai une petite demande qui concerne le temps d'exécution de ma macro.
L'objectif est de boucler sur chaque feuille et ensuite sur chaque valeur allant de 3 à 1000.
For Each sh In ActiveWorkbook.Worksheets
            For i = 3 To 1000


Pensez vous qu'avec un while je pourrais gagner plusieurs secondes et si oui, de quelle façon procéder ?

Merci d'avance,
Configuration: Windows / Edge 18.17763

2 réponses

Messages postés
31095
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2021
3 194
Bonjour,

Non.. aucun gain en changeant un foreach par un while ..

Par contre, si tu désactives l'affichage le temps du traitement.. là ..oui... tu vas en gagner
application.screenupdating = false
for each ..


next
' on reactive
application.screenupdating = true 


Cordialement,
Jordane
Bonjour et merci pour ta réponse.

J'avais déjà essayé avec ceci :

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False


Malheureusement ce n'est pas aussi concluant que je le souhaiterai..
Messages postés
15403
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 janvier 2021
644
Bonjour

Comme on ne sait pas ce qu’il y a dans ta boucle, on tire des plans sur la comète.

Le mien étant de passer par un tableau
https://silkyroad.developpez.com/vba/tableaux/