Boucle for : faire varier la borne Max dans la boucle

Bonjour à tous,

J'utilise un boucle FOR pour scanner un liste et supprimer des doublons (suppression ligne entière)

En conséquence, à chaque fois qu'un doublon est supprimé, je voudrais diminuer la valeur finale de la boucle, car il n'est plus nécessaire de scanner toute une liste dont la longueur a diminué. Mais ma liste continue à compter jusqu'à la borne Max de départ.

==> est-il incorrect de faire varier dynamiquement un borne Maxi de boucle FOR à l’intérieur de cette même boucle ?

==> Quelle solutions pour prendre en compte la réduction de ma liste à l'interieur de la boucle ?

Sub Virer_Doublons()

nb_lignes = WorksheetFunction.CountA(Range("A:A"))  'compte nombre de cellules non vide dans colonne A

For i = 1 To nb_lignes
    If Cells(i, 1) = Cells(i + 1) Then              'si la cellule de dessous = celle au dessus
        Cells(i + 1, 1).EntireRow.Delete            'alors j'efface la ligne du dessous
        nb_lignes = nb_lignes - 1                   'je reduis ma borne de boucle
    End If
Next i

End Sub

D'avance merci

Bonjour,

c'est simple, au lieu de descendre la liste, il faut la remonter

For i = nb_lignes To 1 step -1

Ah bah oui... ça c'est futé

Carrément plus simple mon code en plus (parce que la c'etait qu'un extrait).

Je retiens pour l'avenir.

Merci !

Rechercher des sujets similaires à "boucle varier borne max"