Accelerer exécution boucle en désactivant l'affichage

Accelerer exécution boucle en désactivant l'affichage - VB/VBA/VBS - Programmation

Marsh Posté le 05-03-2007 à 21:40:18    

For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
If Len(Cells(i, 1).Value) <> 9 Then Cells(i, 1).EntireRow.Delete
Next
MsgBox ("suppression lignes terminée" )
 
 
Bonjour
j'ai fait une macro permettant de supprimer toutes les lignes d'une feuille excel suivant un critère  
(dans le cas present je teste la longueur du texte en colonne A, s'il est différent de 9 je supprime la ligne)
 
Ca fonctionne , mais c'est long  :(  
normal le fichier contient de 10000 à plus de 50000 lignes
 
Quand j'étais jeune  :D  j'avais fais une macro avec une grosse boucle de ce genre, et pour en accellerer son exécution, j'avais désactivé le réaffichage
 
mais je ne sais plus faire  :cry:  
 
vous avez une idée ?

Reply

Marsh Posté le 05-03-2007 à 21:40:18   

Reply

Marsh Posté le 05-03-2007 à 21:43:03    

aplication.sreenupdating=false
ca doit etre ca

Reply

Marsh Posté le 05-03-2007 à 21:49:12    

c'est ca, tout a fait
merci  :hello:  
 
sans les fautes
Application.ScreenUpdating = False

Reply

Marsh Posté le 05-03-2007 à 21:50:46    

saleté de clavier il fait pas ce qu'on lui demande

Reply

Marsh Posté le 05-03-2007 à 22:05:41    

test pour 10000 lignes
 
avec Application.ScreenUpdating = False
10s de traitement
 
sans Application.ScreenUpdating = False
3mn de traitement
 
 
c'est bon a connaitre, cette fonction !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed