Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer des lignes avec une boucle for each...

2 réponses
Avatar
tmetic
Bonjour, j'ai un probleme avec ma macro car j'essaye de supprimer les lignes
dont la première cellule a une couleur (non transparente) mais lorsque une
ligne est supprimée, toutes les lignes remontent et l'index de ligne de ma
boucle for n'est pas mis à jour : donc ça ne me supprime pas toutes les
lignes... merci pour votre aide, voici ma macro :
Range("A65535").End(xlUp).Select
adressefin = ActiveCell.Address

For Each c In Worksheets("Feuil4").Range(adressefin, "A1")
c.Select
If Selection.Interior.ColorIndex <> xlColorIndexNone Then
Selection.EntireRow.Delete Shift:=xlUp
End If

Next c

2 réponses

Avatar
Youky
adressefin = Range("A65535").End(xlUp).Row
For ligne = adressefin To 1 Step -1
Cells(ligne, 1).Select
If Selection.Interior.ColorIndex <> xlColorIndexNone Then
Rows(ligne).Delete
End If
Next

Il faut partir du bas et remonter
Youky

"tmetic" a écrit dans le message de news:

Bonjour, j'ai un probleme avec ma macro car j'essaye de supprimer les
lignes

dont la première cellule a une couleur (non transparente) mais lorsque une
ligne est supprimée, toutes les lignes remontent et l'index de ligne de ma
boucle for n'est pas mis à jour : donc ça ne me supprime pas toutes les
lignes... merci pour votre aide, voici ma macro :
Range("A65535").End(xlUp).Select
adressefin = ActiveCell.Address

For Each c In Worksheets("Feuil4").Range(adressefin, "A1")
c.Select
If Selection.Interior.ColorIndex <> xlColorIndexNone Then
Selection.EntireRow.Delete Shift:=xlUp
End If

Next c


Avatar
tmetic
Merci beaucoup, ça marche et c'est en effet plus simple avec une boucle for.


adressefin = Range("A65535").End(xlUp).Row
For ligne = adressefin To 1 Step -1
Cells(ligne, 1).Select
If Selection.Interior.ColorIndex <> xlColorIndexNone Then
Rows(ligne).Delete
End If
Next

Il faut partir du bas et remonter
Youky

"tmetic" a écrit dans le message de news:

Bonjour, j'ai un probleme avec ma macro car j'essaye de supprimer les
lignes

dont la première cellule a une couleur (non transparente) mais lorsque une
ligne est supprimée, toutes les lignes remontent et l'index de ligne de ma
boucle for n'est pas mis à jour : donc ça ne me supprime pas toutes les
lignes... merci pour votre aide, voici ma macro :
Range("A65535").End(xlUp).Select
adressefin = ActiveCell.Address

For Each c In Worksheets("Feuil4").Range(adressefin, "A1")
c.Select
If Selection.Interior.ColorIndex <> xlColorIndexNone Then
Selection.EntireRow.Delete Shift:=xlUp
End If

Next c