rimbaut
Messages postés61Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention 1 juin 2014
-
22 août 2008 à 12:44
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 2012
-
22 août 2008 à 13:54
Re Bonjour,
Je m'essaye sur les boucles en vba et je comprends que je vous sollicite beaucoup. Cependant, j'achoppe depuis un moment sur ce code qui apparemment ne traite que la première ligne.
Quelqu'un peut il me dire ce qui ne va pas. Voici le code :
Sub SupprimerLigne()
Worksheets("Stockretraite").Activate
Dim y As Integer
Dim Ligne As Range
y = 11
For Each Ligne In Range("a11:k4211")
If Cells(y, 3).Value = 0 Then
Rows(y).Select
Selection.Delete Shift:=xlUp
End If
rimbaut
Messages postés61Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention 1 juin 2014 22 août 2008 à 13:38
Merci pour ta réponse pile_poil,
Si je comprends bien je dis mettre un compteur pour incrémenter mon test. Mais celui ci je le mets après le end if ou avant le if ?
Ensuite, je ne sais pas comment l'on fait la boucle en partant de la fin. Peux tu me l'expliquer si cela ne te d"range pas.
Encore merci pour ton aide. Je débute en vba et j'essaye d'écrire du code simple
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 22 août 2008 à 13:54
pour trouver la derniere ligne du tableau contenant une donnée
faut partir d'en bas et remonter :
Range("A65536").End(xlUp).Row '65536 étant le nombre maximum de lignes d'un tableau excel jusqu'la version 2007
donc ton code devient
dim y as integer
for y = Range("A65536").End(xlUp).Row to 1 step -1
If Cells(y, 3).Value = 0 Then
Rows(y).Delete Shift:=xlUp
next y
attention quand meme à Cells(y, 3).Value = 0
le teste vérifie que la cellule contient la valeur numérique 0
si ta cellule est au format string il faut alors tester par exemple "0"
si elle est au format string et vide tu peux alors tester ""
ou encore utiliser vbNullString
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE