La situation : Vous avez une grande liste de clients, mais il y a des clients en double, avec le même nom. Votre liste est tellement grande que, même triée, il est très pénible de retrouver des doublons.Ecrivons un petit module VBA pour pallier à cet inconvénient. |
Soit le tableau Excel suivant :
A |
B |
|
1 |
Paul | |
2 |
||
3 |
Henri | |
4 |
Paul | |
5 |
Louis | |
6 |
Henri| | |
7 |
Paul | |
8 |
Paul | |
9 |
Comme vous le constatez :
La Macro que je vous propose va mettre en fond jaune tous les noms qui apparaissent au moins 2 fois, mais le premier Paul ne sera pas pris en compte à cause de la cellule vide, comme ceci :
A |
B |
|
1 |
Paul | |
2 |
||
3 |
Henri | |
4 |
Paul | |
5 |
Louis | |
6 |
Henri| | |
7 |
Paul | |
8 |
Paul | |
9 |
Allez dans VBA, et créez un nouveau Module (Bouton droit de la souris sur le mot Module, à gauche de votre écran, et Insertion/Module)
Copiez le code suivant :
Type TableauType
Contenu As String
Coordonnee As Integer
End Type
Sub TrouveDoublon()
Dim Tableau() As TableauType
Dim Cellule, Haut, Bas, Compteur, C2
Colonne = ActiveCell.Column
Haut = Selection.End(xlUp).Row
Bas = Selection.End(xlDown).Row
ReDim Tableau(Bas)
For Compteur = Haut To Bas
Tableau(Compteur).Contenu = Cells(Compteur, Colonne)
Tableau(Compteur).Coordonnee = Cells(Compteur, Colonne).Row
Next
For Compteur = Haut To Bas
For C2 = (Compteur + 1) To Bas
If Tableau(Compteur).Contenu = Tableau(C2).Contenu
Then
Cells(Tableau(Compteur).Coordonnee,
Colonne).Interior.ColorIndex = 6
Cells(Tableau(C2).Coordonnee,
Colonne).Interior.ColorIndex = 6
End If
Next
Next
End Sub
Et voilà... Il ne vous reste plus qu'à cliquer sur la cellule B3, B4, B5, B6, B7 ou B8, et appeler la macro TrouveDoublon (Outils/Macros/Macros)
Et si vous voulez les colorer avec une autre couleur, remplacez le ColorIndex = 6 par un autre chiffre... testez...
ATTENTION : Si vous copiez-collez cette macro dans votre VBA, il vous faudra certainement effacer les espaces en début de ligne à la main et les remettre, parce que les espaces que j'ai mis sur cette page Web ne sont pas des espaces très "catholiques"