Supprimer les doublons dans une base de données


Dans les grandes bases de données comportant une "fiche" par ligne, il est souvent utile de supprimer les lignes identiques.
Cette opération est aisément réalisée par une macro VBA utilisant plusieurs boucles imbriquées : Sub suppr_doublons()
For lin = Cells.SpecialCells(xlCellTypeLastCell).Row To 2 Step -1
      For linsup = 1 To lin - 1
            For col = Cells.SpecialCells(xlCellTypeLastCell).Column To 1 Step -1
            If Cells(lin, col) <> Cells(linsup, col) Then Exit For
            If col = 1 Then Rows(lin).Delete
            Next col
      Next linsup
Next lin
End Sub
La macro se compose de trois boucles "for... next" imbriquées :
- la première balaie les lignes (lin) de la zone de travail à partir du bas
- la seconde compare chaque ligne (lin) successivement à toutes les lignes (linsup) qui la précèdent
- la troisième boucle sert à faire cette comparaison, en comparant le contenu de chaque cellule des deux lignes.

Elle présente l'avantage de ne pas modifier l'ordre des lignes (pas d'opération de tri) et d'effectuer la comparaison sur la totalité de chaque ligne.