EXCEL - Affichage en boucle figé
Résolu/Fermé
A voir également:
- EXCEL - Affichage en boucle figé
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Si et excel - Guide
- Mon écran se fige et plus rien ne répond - Guide
- Aller à la ligne excel - Guide
2 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
13 mars 2011 à 19:01
13 mars 2011 à 19:01
bonjour
As-tu essayé en inhibant l'affichage :
As-tu essayé en inhibant l'affichage :
Application.ScreenUpdating = False
En effet, c'est probablement un déséquilibre entre la vitesse de traitement de la carte vidéo et celle du coeur qui est un SSD. Il suffit de by-passer l'affichage avec un test du type :
Dim B As Long
For B = 1 to 100000
If B Mod 5 <> 0 Then GoTo C
Range("B2") = B
C: Next B
.... pour que la situation revienne dans l'ordre.
A titre d'exemple, j'obtiens les valeurs suivantes :
B Mod 5 affichage jusqu'au bout , boucle complète en 12 secondes
B Mod 4 affichage bloqué à 82 520, boucle terminée en 14 secondes
B Mod 3 ..............................61 911 ................................18 secondes
B Mod 2 ..............................40 728 ................................27 secondes
B Mod 1 ............................. 20 465 ................................52 secondes
et, avec B Mod 100 000, je n'ai même plus le temps de déclencher le chronomètre tellement c'est rapide !
Merci "gbinform" pour avoir passé du temps sur la question !
Dim B As Long
For B = 1 to 100000
If B Mod 5 <> 0 Then GoTo C
Range("B2") = B
C: Next B
.... pour que la situation revienne dans l'ordre.
A titre d'exemple, j'obtiens les valeurs suivantes :
B Mod 5 affichage jusqu'au bout , boucle complète en 12 secondes
B Mod 4 affichage bloqué à 82 520, boucle terminée en 14 secondes
B Mod 3 ..............................61 911 ................................18 secondes
B Mod 2 ..............................40 728 ................................27 secondes
B Mod 1 ............................. 20 465 ................................52 secondes
et, avec B Mod 100 000, je n'ai même plus le temps de déclencher le chronomètre tellement c'est rapide !
Merci "gbinform" pour avoir passé du temps sur la question !
13 mars 2011 à 19:40
Mon message était tronqué ! En fait, la procédure s'exécute bien jusqu'au bout. C'est juste l'affichage qui se bloque à une valeur voisine de 25000 pendant que la boucle continue à se dérouler. L'instruction suggérée est efficace puisqu'elle annule l'affichage, mais j'aimerais précisément le conserver pour avoir un compteur.
J'ai l'impression que l'affichage se bloque parce que l'algorithme va beaucoup plus vite et qu'il ne peut suivre.
13 mars 2011 à 22:43
C'est évident que ce calcul simple est rapide et en enlevant l'affichage, je divise le temps par 8 environ. Cela vient peut-être de ta carte vidéo qui ne suis pas ?
Si tu veux un compteur il te faut temporiser le calcul car tu as 100000 affichages en quelques secondes et c'est impossible de suivre le déroulement.