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.