Macro excel et suppression de ligne

mimi -  
 Aussie44 -
Bonjour à tous

Je souhaite supprimer par macro toutes les lignes dont la valeur est différente de 800 dans la colonne E (de E2 à la fin du champ)
Mais ma macro me laisse des lignes qu'elle aurait due supprimer.
Ou est donc l'erreur ?
Merci pour votre aide
Mimi

Range("E2").Select
Range(Selection, Selection.End(xlDown)).Select
Dim vCellule As Object
For Each vCellule In Selection
If vCellule.Value <> 800 Then
vCellule.EntireRow.Delete
End If
Next

7 réponses

  1. jenny
     
    Bonjour,

    Si ta première condition est fausse ta boucle s'arrête! 2 solutions possible soit tu veux que toutes des condition soit vrai dans ce cas
    (principe du AND)
    if cells(ligne, colonne).text(ou value) = XX then
    if cells(ligne, colonne).text(ou value) = XX then
    if cells(ligne, colonne).text(ou value) = XX then
    rows(ligne).delete
    ligne = ligne -1
    end if
    end if
    end if

    plus simplement

    if cells(ligne, colonne).text(ou value) = XX then AND cells(ligne, colonne).text(ou value) AND cells(ligne, colonne).text(ou value)
    rows(ligne).delete
    ligne = ligne -1
    end if

    si tu veu que dès qu'une de tes condition soit vrai la ligne est supprimée (principe du OR)

    if cells(ligne, colonne).text(ou value) = XX then
    rows(ligne).delete
    ligne = ligne -1
    end if
    if cells(ligne, colonne).text(ou value) = XX then
    rows(ligne).delete
    ligne = ligne -1
    end if
    if cells(ligne, colonne).text(ou value) = XX then
    rows(ligne).delete
    ligne = ligne -1
    end if

    ou plus simplement

    if cells(ligne, colonne).text(ou value) = XX then or cells(ligne, colonne).text(ou value) or cells(ligne, colonne).text(ou value)
    rows(ligne).delete
    ligne = ligne -1
    end if
    15