Pb suppression ligne avec boucle

Bonjour,

J'ai défini une liste d'utilisateurs abilités à faire des demandes dans la feuille Feuil1 plage B2 à B4

Dans ma feuille Sheet1, j'ai 20 000 lignes avec plein de colonnes mais la colonne de travail est la colonne C (colonne des utilisateurs)

Pour toutes les lignes, si dans ma colonne C la valeur diffère de la plage B2 à B4, alors je veux supprimer la ligne.

Autrement dit, je souhaite conserver que les lignes correspondant à des utilisateurs abilités.

J'utilise ce bout de code mais mon problème est que lorsque je supprime une ligne, mon itération i prend la valeur +1 à cause de la boucle mais comme je viens de supprimer une ligne, j'ai une incohérence entre le n°de ligne suivante à analayser qui ne prend pas +1

' Définir le nombre de lignes utiles

Range("A60000").End(xlUp).Offset(0, 0).Select

Lignemax = ActiveCell.Row

' Se positionner sur le login du requestor de la 1ere ligne

Range("C1").End(xlDown).Offset(1, 0).Select

Lignemin = ActiveCell.Row

MsgBox ("ok")

MsgBox Lignemin

MsgBox Lignemax

' Supprimer les lignes dont les logins ne font pas partie de l'équipe

For i = Lignemin To Lignemax Step 1

Sheets("Sheet1").Select

Range("C" & i).Select

valtest = Range("C" & i).Value

If valtest <> Sheets("Feuil1").Range("B2").Value Then

MsgBox valtest

MsgBox (Sheets("Feuil1").Range("B2").Value)

MsgBox ActiveSheet.Name

ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete

End If

'If Range("C" & i).Value <> Sheets("Feuil1").Range("B3").Value Then

' If Range("C" & i).Value <> Sheets("Feuil1").Range("B4").Value Then

' If Range("C" & i).Value <> Sheets("Feuil1").Range("B5").Value Then ActiveSheet.Rows(ActiveCell.Row).EntireRow.Delete

'End If

'End If

'End If

' End If

Next

bonsoir;

For i = Lignemin To Lignemax Step 1

il faut faire le contraire (avec Step -1) et partir du bas

For i = Lignemax To Lignemin Step -1

Amicalement

Claude

merci bcp!

j'ai encore quelques progres de reflexion à faire!

Bonsoir,

la technique qui consiste à remonter avec un step -1 ne pose aucun souci.

par contre, j'ai un autre problème.

J'ai 20000 lignes et pour chacune d'entre elles, je regarde si la valeur de la colonne A figure dans une liste de 4 choix ; ch1, ch2, ch3, ch4

la logique est si Ai <> ch1 alors

si Ai <>ch2 alors

Si Ai<>ch3 alors

si Ai<>ch4 alors suppression de la ligne

MAIS C'EST SUPER LONG? Y a t il un autre moyen de détourner cette lenteur ?

Bonsoir,

Un filtre élaboré devrait faire l'affaire,

faudrait voir avec le fichier réel, supprime des lignes (à cause du poids)

édit: retire le résolu pour continuer

à te relire

Claude

Rechercher des sujets similaires à "suppression ligne boucle"