Bonjour a tous,
J'ai un fichier de 350 000 lignes et je dois supprimer plusieurs lignes selon un critere.
Pour cela en colonne "A" je réalise un test "=SI(ABS(AI2)<0,5;"A";"B")" et j'ai récupéré un code qui me permet de supprimer toutes les lignes contenant "B".
Par contre la macro est très longue probablement à cause de la taille du fichier (voisin de 50Mo), c'est pourquoi je tente vainement de plagier le code de "Boigontier"
J'ai besoin d'aide pour adapter ce code a mon fichier.
Merci par avance.
J'ai un fichier de 350 000 lignes et je dois supprimer plusieurs lignes selon un critere.
Pour cela en colonne "A" je réalise un test "=SI(ABS(AI2)<0,5;"A";"B")" et j'ai récupéré un code qui me permet de supprimer toutes les lignes contenant "B".
Code:
Sub Suppressiondeligne()
Dim Deb As Currency
Deb = Timer
Application.ScreenUpdating = False
Dim I&
With ActiveSheet
For I = .Range("A350000").End(xlUp).Row To 1 Step -1
If .Cells(I, 1).Value <> "" Then
If Asc(.Cells(I, 1).Value) = 66 Or Asc(.Cells(I, 1).Value) = 98 Then
.Cells(I, 1).EntireRow.Delete
End If
End If
Next I
End With
ActiveWorkbook.Save
Application.ScreenUpdating = True
MsgBox "J'ai bossé " & Timer - Deb & " seconde"
End Sub
Code:
1. Sub supLignesRapide()
Application.ScreenUpdating = False
Range("H10:H" & [C65000].End(xlUp).Row).FormulaR1C1 = _
"=IF(sum(RC[-7]:RC[-1])=0,""sup"",0)"
[A10:H1000].Sort Key1:=Range("H10"), Order1:=xlAscending, Header:=xlNo
Range("h10:h65000").SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
Columns("h:h").Clear
End Sub
Merci par avance.