Supprimer des lignes sous deux conditions

Bonjour à tous,

Je rencontre un problème avec les lignes de ma macro ci-dessous.

J'ai des lignes qui ne respectent pas ma condition IF et pourtant elles ne sont pas supprimées.

Pourriez-vous me dire ce que je dois ajouter/modifier dans ma macro afin qu'elle englobe toutes les lignes mon tableau, s'il vous plaît?

Merci par avance pour votre aide.

For iLig = iLast - 1 To 5 Step -1
    If Len(x.Cells(iLig, 8).Value) <> 2 And Len(Trim(x.Cells(iLig, 9).Value)) <> 4 Then
        x.Cells(iLig, 1).EntireRow.Delete
    End If
Next iLig

Bonjour,

A priori, ça se joue autour du contenu de la variable iLast, dont l'affectation n'est pas présente dans ton extrait de code.

Bonsoir @Pedro22,

Effectivement je n'ai pas mis les valeurs de mes variables.

Ci-dessous le détail:

Dim x As Worksheet

Set x = Worksheets("Données Brutes")
x.Activate

Dim iLig As Integer
Dim iLast As Long

iLast = x.Range("A" & Application.Rows.Count).End(xlUp).Row

Application.ScreenUpdating = False
For iLig = iLast - 1 To 5 Step -1
    If Len(x.Cells(iLig, 8).Value) <> 2 And Len(Trim(x.Cells(iLig, 9).Value)) <> 4 Then
        x.Cells(iLig, 1).EntireRow.Delete
    End If
Next iLig

Merci par avance pour votre aide.

Je ne vois pas ce qui pose problème, pouvez vous détailler ?

Salut Black-Hole,

Salut Pedro,

iLast = x.Range("A" & Application.Rows.Count).End(xlUp).Row

Le code fonctionne : à mon sens, iLast est calculé sur une colonne inadéquate!

A+

Bonsoir @curulis57,

Le code fonctionne : à mon sens, iLast est calculé sur une colonne inadéquate!

En faite, pour calculer le nombre total de lignes de mon tableau, je me base sur la première colonne A qui est la colonne avec les ID (donc la plus complète et représentative de la dimension de mon tableau).

Est-ce une erreur de mar part d'adopter ce raisonnement?

Non, c'est correct!

Ici, le code fonctionne!

Donc,

ou , en tout cas, une partie...

A+

Rechercher des sujets similaires à "supprimer lignes deux conditions"