Suppression de ligne avec IF

Bonjour

J'essaie de supprimer les lignes d'une tableau qui ne comporte ni PAPA ni MAMAN ni FILLE ni FILS

dans la colonne "C"

je comprends pas mon erreur si quelqu'un a la solution je veux bien

Merci a tous

Naë

Dim cell As Range

For Each cell In Range("C2:C70")
    If cell <> "FILS" And cell <> "MAMAN" And cell <> "FILLE" And cell <> "PAPA"  Then
        cell.EntireRow.Delete
    End If
Next cell

Bonjour,

à la lecture du code je ne perçois pas de problème particulier, ce n'est peut-être pas la façon dont j'aurais écris le test mais cette façon fonctionne quand même je pense.

Quand vous parlez d'erreur, de qu'elle sorte d'erreur s'agit-t-il? quel type de tableau avez vous?

Bonjour,

Il faut partir du bas du tableau en remontant,

For i = 70 To 2 Step -1
    If cell(i, "C") <> "FILS" And cell(i, "C") <> "MAMAN" And cell(i, "C") <> "FILLE" And cell(i, "C") <> "PAPA" Then
        Rows(i).Delete
    End If
Next i

Cdlt

Re

oui je sais pour le fichier mais , mais il est énorme et forcement ça complique de le diviser pour en mettre qu'une partie , enfaite sur un tableau de 70 lignes je veux extraire que les ligne PAPA....MAMAN (colonne C) et surtout supprimer toute les autres.

en faite j'ai fait des tests mon code marche mais je suis obligée d'appuyer plusieurs fois sur le bouton de la macro pour que tout ce fasse

je pense qu'il me faudrait un loop , mais je pensais que c’était bon comme ça

Arturo83 je n'arrive pas a faire fonctionner ton code "ERREUR 13" il me demande de définir cell(i, "C") = <incompatibilité de type> et la je sais pas ^^

Merci de prendre le temps de me lire

Naë

Bonjour, le problème de votre code vient à cause des suppressions de ligne.

La ligne 3 supprimée c'est donc la ligne 4 qui devient la ligne 3 hors votre macro est passée à la suivante.

( Et du coup, celà donne l'impression que la macro a oublié des lignes )

D'où le code d'Arturo de bas en haut.

j'aurai écris :

Sub Macro1()
For i = Range("C65536").End(xlUp).Row To 2 Step -1
If Range("C" & i).Value <> "FILS" And Range("C" & i).Value <> "MAMAN" And Range("C" & i).Value <> "FILLE" And Range("C" & i).Value <> "PAPA" Then
Rows(i).Delete Shift:=xlUp
End If
Next
End Sub

ça ne marche pas parce que j'ai fait une faute de frappe mais comme je n'avais pas pu tester je ne l'ai pas vu, il fallait écrire Cells au lieu de Cell.

Oki merci

J'ai compris maintenant , ça marche nickel !

Bonjour,

Il faut partir du bas du tableau en remontant,

For i = 70 To 2 Step -1
    If cell(i, "C") <> "FILS" And cell(i, "C") <> "MAMAN" And cell(i, "C") <> "FILLE" And cell(i, "C") <> "PAPA" Then
        Rows(i).Delete
    End If
Next i

Cdlt

Bonjour,

Ah oui, c'est mieux de faire de bas en haut quand on supprime, je n'ai pas pensé à ça quand j'ai répondu, bien vu!

Rechercher des sujets similaires à "suppression ligne"