Bonjour à toutes et à tous,
le code suivant est censé supprimer des lignes quand un critère est rempli. Or, il est horriblement lent, à tel point que je pensais que l'ordi avait planté mais quand je l'interromps et contrôle le nombre de lignes restant, je vois bien qu'il manque des lignes (donc le job est fait, mais quelle lenteur !). Pour me convaincre que ça marche, je garde 10 lignes pour lesquelles je change le critère, et ça marche bel et bien (mais 10 lignes ...).
J'ai un bon ordi récent avec 4 Go de RAM, processeur Pentium donc ce n'est pas de ce côté qu'il faut regarder ...
Le fichier fait certes environ 10 000 lignes mais tout de même !!!!
Sub calculation()
With Application
.ScreenUpdating = False
.EnableEvents = False
.calculation = xlCalculationManual
End With
Dim numlign As Integer
Dim i As Integer
numlign = Range("A" & Rows.Count).End(xlUp).Row
For i = numlign To 2 Step -1
If Cells(i, 26) = 2011 Then ' quand l'année contenue en colonne 26 vaut 2011
Rows(i).Delete
End If
Next i
End Sub
Merci d'avance pour vos idées (boucle ?) car je vais faire un usage régulier de cette macro
le code suivant est censé supprimer des lignes quand un critère est rempli. Or, il est horriblement lent, à tel point que je pensais que l'ordi avait planté mais quand je l'interromps et contrôle le nombre de lignes restant, je vois bien qu'il manque des lignes (donc le job est fait, mais quelle lenteur !). Pour me convaincre que ça marche, je garde 10 lignes pour lesquelles je change le critère, et ça marche bel et bien (mais 10 lignes ...).
J'ai un bon ordi récent avec 4 Go de RAM, processeur Pentium donc ce n'est pas de ce côté qu'il faut regarder ...
Le fichier fait certes environ 10 000 lignes mais tout de même !!!!
Sub calculation()
With Application
.ScreenUpdating = False
.EnableEvents = False
.calculation = xlCalculationManual
End With
Dim numlign As Integer
Dim i As Integer
numlign = Range("A" & Rows.Count).End(xlUp).Row
For i = numlign To 2 Step -1
If Cells(i, 26) = 2011 Then ' quand l'année contenue en colonne 26 vaut 2011
Rows(i).Delete
End If
Next i
End Sub
Merci d'avance pour vos idées (boucle ?) car je vais faire un usage régulier de cette macro