Bonjour,
Etant loin d'être un pro du VBA, je souhaiterai avoir une procédure plus rapide pour exécuter le code suivant :
Le principe est d'effacer toute ligne d'une feuille excel sur base du contenu de la première colonne A.
Les critères variables sont contenus dans 2 cellules d'une autre feuille du classeur.
Critère 1 : 201601
Critère 2 : 201612
Toute ligne dont la valeur en colonne A est inférieure au critère 1 ou supérieure au critère 2 doit être effacée.
Le code ci-avant fonctionne mais est très lent. Il faut près de 5 minutes pour faire 20.000 enregistrements.
Si quelqu'un aurait la gentillesse de me proposer un code plus efficace ?
Rodolphe
Etant loin d'être un pro du VBA, je souhaiterai avoir une procédure plus rapide pour exécuter le code suivant :
Code:
Sub EffacerlignesPériode()
Worksheets("ExportEcritures").Select
derniereligne = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
For I = derniereligne To 1 Step -1
If Cells(I, 1) <> "" And Cells(I, 1) < Range("Départ!e8").Value Or Cells(I, 1) > Range("Départ!e9").Value Then
Rows(I).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub
Les critères variables sont contenus dans 2 cellules d'une autre feuille du classeur.
Critère 1 : 201601
Critère 2 : 201612
Toute ligne dont la valeur en colonne A est inférieure au critère 1 ou supérieure au critère 2 doit être effacée.
Le code ci-avant fonctionne mais est très lent. Il faut près de 5 minutes pour faire 20.000 enregistrements.
Si quelqu'un aurait la gentillesse de me proposer un code plus efficace ?
Rodolphe