Ralentir une macro trop rapide !!

C

Creepy

Guest
Bonjour à toutes & tous,

Voila, j'ai fait plusieurs Macros, mais j'ai un probleme pour 2/3 d'entre elles. Entre autre celle pour supprimer des lignes.

J'ai des tableaux de 2500/3500 lignes, mais certaines sont vides. Pour faire + propre et + compact, j'ai fait une macro qui vire les lignes vides !

Cependant elle va tellement vite que Excel zappe certaines d'entre elles !!

Je suis obligé de relancer la macro 4/5 fois pour ne plus avoir de lignes vierges.

Comment ralentir la macro pour que tout soit OK en 1 passage ?

un screenupdating en false ?

Merci d'avance

Creepy
 
C

Creepy

Guest
Salut,

Je vois pas trop ce qui pose problème !! ?? !!

Voila le code.

si tu peux m'eclairer, car il s'agit d'une macro assez simple, je vois pas trop ce qui cloche.

Dim ligne As Long
For ligne = 4 To Range("g4").End(xlDown).Row
If Range("g" & ligne).Value = 0 And Range("h" & ligne).Value = 0 And Range("i" & ligne).Value = 0 _
And Range("j" & ligne).Value = 0 And Range("k" & ligne).Value = 0 And Range("l" & ligne).Value = 0 Then
Rows(ligne & ":" & ligne).Select
Selection.Delete Shift:=xlUp
End If
Next ligne


Merci d'avance

++

Creepy
 
T

Ti

Guest
Effectivement, elle est mal écrite (désolé de te le dire si crûment :)) parce que avec ta façon de procéder, tu devrais commencer par la fin de ta plage pour remonter jusqu'à la première ligne.

Voici en tout cas une macro plus efficace et plus rapide :

Sub DetruitLignes()
'Ti
Dim Plage As Range
Application.ScreenUpdating = False
Set Plage = Range("G4", Range("L65536").End(xlUp))
ActiveSheet.AutoFilterMode = False
With Plage
.AutoFilter
.AutoFilter Field:=1, Criteria1:="="
.AutoFilter Field:=2, Criteria1:="="
.AutoFilter Field:=3, Criteria1:="="
.AutoFilter Field:=4, Criteria1:="="
.AutoFilter Field:=5, Criteria1:="="
.AutoFilter Field:=6, Criteria1:="="
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
8
Affichages
543