OVH Cloud OVH Cloud

supprimer les lignes vides dans une boucle, en évitant le décala ge

5 réponses
Avatar
Maud
bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est vide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete, comme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprimée, et
comme pour la boucle for each, a chaque fois, la boucle descend d'une ligne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" & r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Delete
End If
Next r

et

nombreligne =
Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).Delete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!

5 réponses

Avatar
Vincnet.
Une astuce courante pour ce cas précis : utilise
For nom3 = nombreligne To 2 Step -1
ce qui te permettra de partir du bas et de ne supprimer que les lignes
souhaitées !

--
A+

V.



bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est vide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete, comme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprimée, et
comme pour la boucle for each, a chaque fois, la boucle descend d'une ligne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" & r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Delete
End If
Next r

et

nombreligne =
Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).Delete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!


Avatar
Daniel
Bonjour.
Adapte :

For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Range("A" & i).Value = "" Then
Range("A" & i).EntireRow.Delete
End If
Next i

Cordialement.
Daniel
"Maud" a écrit dans le message de news:

bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est vide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete,
comme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprimée,
et
comme pour la boucle for each, a chaque fois, la boucle descend d'une
ligne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Delete
End If
Next r

et

nombreligne > Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then

Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).Delete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!


Avatar
Maud
merci ca marche!! pfiou, enfin!! merci beaucoup!


Une astuce courante pour ce cas précis : utilise
For nom3 = nombreligne To 2 Step -1
ce qui te permettra de partir du bas et de ne supprimer que les lignes
souhaitées !

--
A+

V.



bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est vide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete, comme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprimée, et
comme pour la boucle for each, a chaque fois, la boucle descend d'une ligne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" & r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Delete
End If
Next r

et

nombreligne =
Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).Delete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!




Avatar
Vincnet.
de rien beaucoup ! ;op

--
A+

V.



merci ca marche!! pfiou, enfin!! merci beaucoup!


Une astuce courante pour ce cas précis : utilise
For nom3 = nombreligne To 2 Step -1
ce qui te permettra de partir du bas et de ne supprimer que les lignes
souhaitées !

--
A+

V.



bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est vide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete, comme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprimée, et
comme pour la boucle for each, a chaque fois, la boucle descend d'une ligne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" & r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Delete
End If
Next r

et

nombreligne =
Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).Delete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!






Avatar
JB
Pour supprimer les lignes vides en colonne A sans boucle:

[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Cordialement JB



Une astuce courante pour ce cas précis : utilise
For nom3 = nombreligne To 2 Step -1
ce qui te permettra de partir du bas et de ne supprimer que les lignes
souhaitées !

--
A+

V.



bonjour a tous
je fais une boucle for each et je test dans une plage si un champ est v ide
alors suprrime moi la ligne. Mais en suprimant une ligne avec delete, c omme
la ligne disparait, c'est la ligne de dessous qui deviens celle supprim ée, et
comme pour la boucle for each, a chaque fois, la boucle descend d'une l igne,
quand il y a plusieurs champs vides, il y en a un qui reste vide!
j'ai essayé avec for aussi mais ca n'a pas marché:

For Each nom3 In
Workbooks("reporting_V4").Worksheets("baseStatut").Range("nom_projet2")
r = nom3.Row
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" & r)
= "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(r).Dele te
End If
Next r

et

nombreligne =
Workbooks("reporting_V4").Worksheets("baseStatut").UsedRange.Rows.Count

For nom3 = 2 To nombreligne
If Workbooks("reporting_V4").Worksheets("baseStatut").Range("A" &
nom3) = "" Then
Workbooks("reporting_V4").Worksheets("baseStatut").Rows(nom3).D elete
End If
Next nom3

voilà si vous pouvez me donner un coup de main, merci d'avance!