VBA - Suppression de lignes sous conditions

Bonjour,

je suis novice en VBA, j'espère que vous pourrez m'aider pour ce problème

Je souhaiterai supprimer toutes les lignes de mon fichier dont la colonne F ne contient pas les membres d'une équipe : "Toto", "Tata", "Titi", "Tutu" et "Tete".

J'ai essayé ce code, mais il me supprime plus de ligne que prévu :

Sub équipe()

Dim I As Integer

For I = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1

fin:

If (Cells(I, 6) = "Toto") Or (Cells(I, 6) = "Tata") Or (Cells(I, 6) = "Titi") Or (Cells(I, 6) = "Tutu") Or (Cells(I, 6) = "Tete") Then

I = I - 1

GoTo fin

Else

Rows(I).Delete

End If

Next I

End Sub

Merci beaucoup

Dim I As Integer
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
'fin:
If (Cells(I, 6) = "Toto") Or (Cells(I, 6) = "Tata") Or (Cells(I, 6) = "Titi") Or (Cells(I, 6) = "Tutu") Or (Cells(I, 6) = "Tete") Then
Rows(I).Delete
'I = I - 1
'GoTo fin
End If
Next I

if (conditions) then (code a lancer si vrai) else(code a lancer si faux).

Donc dans ton code tu lancais la suppression des lignes ne correspondant pas a ta recherche.

zarik a écrit :
Dim I As Integer
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
'fin:
If (Cells(I, 6) = "Toto") Or (Cells(I, 6) = "Tata") Or (Cells(I, 6) = "Titi") Or (Cells(I, 6) = "Tutu") Or (Cells(I, 6) = "Tete") Then

ELSE

Rows(I).Delete
'I = I - 1
'GoTo fin
End If
Next I

if (conditions) then (code a lancer si vrai) else(code a lancer si faux).

Donc dans ton code tu lancais la suppression des lignes ne correspondant pas a ta recherche.

bonjour,

si j'ai bien compris il faut lancer la suppresion si la condition est fausse, donc il faut ajouter un else

Bonjour,

Une autre option :

Sub équipe()
Dim I As Integer
Dim AGarder
AGarder = Array("Toto", "Tata", "Titi", "Tutu", "Tete")
For I = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If IsError(Application.Match(Cells(I, "F").Value, AGarder, 0)) Then
        Rows(I).Delete
    End If
Next I
End Sub

Bonne journée

si j'ai bien compris il faut lancer la suppresion si la condition est fausse, donc il faut ajouter un else

Oups j'ai compris a l'envers

Mais un "if not" serait plus adapter, non?

Merci à tous les deux Cousinhub et Zarik pour vos réponses!!!

Le dernier code de cousinhub fonctionne à merveille.

Merci, merci, merci!!!!!

Bonne journée à tous les deux!

zarik a écrit :

si j'ai bien compris il faut lancer la suppresion si la condition est fausse, donc il faut ajouter un else

Oups j'ai compris a l'envers

Mais un "if not" serait plus adapté, non?

Plus clair peut-être, mais le else est plus efficace (30% à 50%), mais il bien évident que pour ce cas ci, c'est imperceptible.

Rechercher des sujets similaires à "vba suppression lignes conditions"