Supression ligne ( boucle décrémentation )

gopo Messages postés 76 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

( les nombre sont ficitifs )

Je cherche a supprimer la ligne 88 seul probleme les informations qui se trouve dans cette ligne
peuvent changé de ligne ( ex : d'une semaine a l'autre la ligne que je veux supprimer va peut etre
etre en 99 puis apres en 120 ) donc je ne peux pas prédéfinir la ligne a supprimer le seul mot clef est RGP
mais RGP est partout .... seul indice possible il faut supprimer la derniere ligne ou apparait RGP c'est le sous total RGP
donc il faudrait y faire une boucle qui lit a partir de la fin et des qu'il voit RGP il supprime la ligne ( qui est la ligne de sous total, celle que je veux supprimer )

le Code que j'ai pour effectuer une suppression de la ligne quand le mot clé RGP apparait ...

For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
If Cells(i, 1).Value = "RGP" Then Cells(i, 1).EntireRow.Delete
Next

HElP, merci de votre aide....
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
If Cells(i, 1).Value = "RGP" Then
rows(i).delete
exit for
end if
Next

Edit: 17:57h

sans boucler:

Sub dernier_rgp()
Dim lig As Long
lig = Columns(1).Find("RGP", Range("A65536"), , , , xlPrevious).Row
Rows(lig).Delete
End Sub
-1
gopo Messages postés 76 Statut Membre 2
 
Bonjour, et merci pour t'a réponse

sans boucle :

Sub dernier_rgp()
Dim lig As Long
lig = Columns(1).Find("RGP", Range("A65536"), , , , xlPrevious).Row
Rows(lig).Delete
End Sub

ma collone est la "C" je remplace Columns(1) par 3 ? Range A65536 , par C65536 ? et les , , , , je supprime ?
car ca ne marche pas ca me fait une erreur sur "lig= ...."

Merci a toi !
-1
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

Je viens d'essayer: ça marche sur XL2000 et 2007

essaies comme ça si les virgules te gène:

lig = Columns(3).Find(what:="RGP", after:=Range("C65536"), SearchDirection:=xlPrevious).Row

si tu es sous 2007 remplace 65536 par 1048576 (dernière ligne d'excel 2007) pour commencer la recherche à la ligne 1

regarde bien si il n'y a d'autres caractères que RGP dans la cellule comme l'espace par ex.
sinon si RGP est avec d'autres caractères il faut insérer lookat:="xlpart"

Tu dis les résultats
-1