OVH Cloud OVH Cloud

Suppression Lignes

4 réponses
Avatar
Dom
Bonjour,

J'ai recuperer un code, que quand il est ecrit "A Supprimer" dans la 12 eme
colonne cela me supprime la ligne.
Mais, cela prend la colonne complet en reference, de L1 a L65536 et cela
prend quand meme du temps a analyser la colonne complette.
For lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
To 1 Step -1
If Cells(lin, 12) = "A Supprimer" Then Rows(lin).Delete Shift:=xlUp
Next lin

Est il possible de faire la meme chose, mais que sur une plage donné.
si de L22 a L109 il est ecrit "A Supprimer" cela me supprime cette ligne.

Car la solution que j'ai teste 65536 ligne et cela met du temps.
Que si cela me testais que 87 Lignes, cela irait beaucoup plus vite.
de plus cette plage ne changera jamais.

Merci de votre aide.

Dom

4 réponses

Avatar
Vincent.
Bonjour,
Apparemment tu utilises toutes les lignes (sur au moins
une colonne) de la feuille analysée.
Une solution est de rentrer directement les lignes finales
et initiales sur lesquelles doit tourner la macro :
For lin = 109 To 22 Step -1
...
Ca te va ?

-----Message d'origine-----
Bonjour,

J'ai recuperer un code, que quand il est ecrit "A
Supprimer" dans la 12 eme

colonne cela me supprime la ligne.
Mais, cela prend la colonne complet en reference, de L1 a
L65536 et cela

prend quand meme du temps a analyser la colonne complette.
For lin = ActiveSheet.UsedRange.Rows.Count +
ActiveSheet.UsedRange.Row

To 1 Step -1
If Cells(lin, 12) = "A Supprimer" Then Rows
(lin).Delete Shift:=xlUp

Next lin

Est il possible de faire la meme chose, mais que sur une
plage donné.

si de L22 a L109 il est ecrit "A Supprimer" cela me
supprime cette ligne.


Car la solution que j'ai teste 65536 ligne et cela met du
temps.

Que si cela me testais que 87 Lignes, cela irait beaucoup
plus vite.

de plus cette plage ne changera jamais.

Merci de votre aide.

Dom


.



Avatar
Vincent.
Bonjour,
Apparemment tu utilises toutes les lignes (sur au moins
une colonne) de la feuille analysée.
Une solution est de rentrer directement les lignes finales
et initiales sur lesquelles doit tourner la macro :
For lin = 109 To 22 Step -1
...
Ca te va ?

-----Message d'origine-----
Bonjour,

J'ai recuperer un code, que quand il est ecrit "A
Supprimer" dans la 12 eme

colonne cela me supprime la ligne.
Mais, cela prend la colonne complet en reference, de L1 a
L65536 et cela

prend quand meme du temps a analyser la colonne complette.
For lin = ActiveSheet.UsedRange.Rows.Count +
ActiveSheet.UsedRange.Row

To 1 Step -1
If Cells(lin, 12) = "A Supprimer" Then Rows
(lin).Delete Shift:=xlUp

Next lin

Est il possible de faire la meme chose, mais que sur une
plage donné.

si de L22 a L109 il est ecrit "A Supprimer" cela me
supprime cette ligne.


Car la solution que j'ai teste 65536 ligne et cela met du
temps.

Que si cela me testais que 87 Lignes, cela irait beaucoup
plus vite.

de plus cette plage ne changera jamais.

Merci de votre aide.

Dom


.



Avatar
AV
Est il possible de faire la meme chose, mais que sur une plage donné.
si de L22 a L109 il est ecrit "A Supprimer" cela me supprime cette ligne.


Sub suppr_lignes()
With ActiveSheet
For lg = 109 To 22 Step -1
If Range("L" & lg) = "A Supprimer" Then Rows(lg).Delete
Next
End With
End Sub

AV

Avatar
Dom
Merci cela fonctionne

Dom


"AV" a écrit dans le message de
news:bnatb6$ir5$
Est il possible de faire la meme chose, mais que sur une plage donné.
si de L22 a L109 il est ecrit "A Supprimer" cela me supprime cette
ligne.



Sub suppr_lignes()
With ActiveSheet
For lg = 109 To 22 Step -1
If Range("L" & lg) = "A Supprimer" Then Rows(lg).Delete
Next
End With
End Sub

AV