Supprimer lignes si condition dans chaque cellule d'une colonne

Bonjour,

Je souhaite supprimer les cellules vides ou = 0 pour ma colonne A (comme un filtre) entre les lignes 101 et 200.
Pour cela, j'effectue ce code qui ne marche pas et qui fait même buguer excel:

    n = 0
    For i = 101 To 200 - n
        If Cells(i, 1) = "" Or Cells(i, 1) = 0 Then
            Rows(i).Delete
            i = i - 1
            n = n + 1
        End If
    Next i

Je n'arrive pas à trouver l'erreur, peut-être qu'il existe plus simple en utilisant la fonction range("A101:A200") pour éviter le for? (je ne maitrise pas du tout VBA).

Merci beaucoup,

Vincent

Bonjour,

Quand tu supprimes des lignes, il faut commencer par la fin.

    For i = 200 To 101 step -1
        If Cells(i, 1) = "" Or Cells(i, 1) = 0 Then Rows(i).Delete
    Next i

Ton n ne sert à rien ici, non ?

Bonjour Vincent, JN

 For i = 101 To 200 - n

Pour compléter le post de JN, il faut savoir qu'une boucle ne peut pas s'incrémenter ou se décrémenter

La boucle est exécutée avec les 1ères valeurs, d'où le fait de la faire de la fin au début des lignes

@+

Super merci ça marche, j'ignorais qu'il fallait commencer par la fin pour supprimer des lignes.

J'avais utilisé le n car à chaque fois que je supprime une ligne, ma ligne 200 devient la ligne 199, mais apparemment, ça le prend en compte par défaut (d'où surement la subtilité de commencer par la fin).

Encore merci

Rechercher des sujets similaires à "supprimer lignes condition chaque colonne"