Gagner du temps sans boucle for

Fermé
Guillaume - 11 janv. 2021 à 14:53
 Utilisateur anonyme - 11 janv. 2021 à 15:55
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
A voir également:

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié le 11 janv. 2021 à 14:55
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 


0
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..
0
Utilisateur anonyme
11 janv. 2021 à 15:55
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/
0