Bonjour le forum,
J'ai une macro avec laquelle je supprime une plage avec condition dans un fichier qui fait en moyenne 160000 lignes j'utilise pour l'instant ce code là mais il met environ 32 sec pour supprimer les plage:
J'ai donc pensé à utiliser la méthode find mais ça ne supprime pas toutes les lignes et ça prend environ 58 sec et je dois avouer que je ne suis pas habitué à utiliser cette méthode voici le code :
Donc je me demandais s'il existait une autre méthode plus rapide pour supprimer une plage avec condition en vous remerciant d'avance pour votre aide 🙂.
J'ai une macro avec laquelle je supprime une plage avec condition dans un fichier qui fait en moyenne 160000 lignes j'utilise pour l'instant ce code là mais il met environ 32 sec pour supprimer les plage:
Code:
Sub Suppr()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
Dim l, derl As Long
derl = Range("A" & Rows.Count).End(xlUp).Row
For l = derl To 1 Step -1
If Cells(l, 1) Like ("*---*") Then
Range("A" & l - 11 & ":A" & l + 1).EntireRow.Delete
End If
Next l
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
J'ai donc pensé à utiliser la méthode find mais ça ne supprime pas toutes les lignes et ça prend environ 58 sec et je dois avouer que je ne suis pas habitué à utiliser cette méthode voici le code :
Code:
Sub Suppr_find()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
Dim l, derl As Long
Dim cell, plg As Range
Dim x As Variant
derl = Range("A" & Rows.Count).End(xlUp).Row
Set plg = Range("A1:A" & derl)
For Each cell In plg
Set x = cell.Find("---", , , xlPart, , xlPrevious, , False)
If Not x Is Nothing Then Range(cell.Offset(-11, 0), cell.Offset(1, 0)).EntireRow.Delete
Next cell
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Donc je me demandais s'il existait une autre méthode plus rapide pour supprimer une plage avec condition en vous remerciant d'avance pour votre aide 🙂.