Voir aussi
Repérer des doublons sur 2 colonnes
J'ai une liste de deux colonnes nom/prénom. Comment repérer les doubons sur les deux colonnes (même nom et même prénom sur une ligne) ?
- Sélectionne la plage, disons A2:B11 (pas les colonnes entières)
- Format/Mise en forme conditionnelle
- Choisir la formule est:
=SOMMEPROD(($A$2:$A$11=$A2)*($B$2:$B$11=$B2))>1
Jacques Boisgontier,
Ajouté ou modifié le 05/04/2008 (N°2002)
Doublons coloriés
Je voudrais en VBA sélectionner une plage de cellules, vérifier si chaque cellule ne trouve pas son double dans la selection et si oui, lui affecter un format différent.
Une variation sur la particularité des collections de déclencher une erreur
lorsqu'on tente de leur ajouter un membre qui a déjà le même nom de clé. En
prenant comme clé la valeur "texte" des cellules parcourues, une erreur signe
l'apparition d'un doublon. La cellule qui a déclenché l'erreur est coloriée en
vert. A la fin du traitement, les doublons apparaissent en vert et les cellules
doublonnées ou uniques apparaissent en jaune :

Sub DoublonOrNotDoublon()
Dim Collec As New Collection, Cell As Range, Plage As Range

On Error Resume Next
Set Plage = Application.InputBox("Plage à examiner", Type:=8)
If IsEmpty(Plage) Then Exit Sub

For Each Cell In Plage
If Cell.Value <> "" Then
Collec.Add Cell.Value, CStr(Cell.Value)
If Err <> 0 Then
Err.Clear
Cell.Interior.ColorIndex = 43
Else
Cell.Interior.ColorIndex = 6
End If
End If
Next Cell
End Sub

Attention : cette macro te signale la première valeur identifiée comme doublon.
Maintenant s'il y en a plusieurs identiques et que tu veux toutes les marquer :
Utilises plutôt la macro ci dessous. Mais la double boucle peut rendre
l'exécution longuette selon la taille de la plage à examiner et la puissance de
ta machine ...

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Plage à examiner", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub
Frédéric Sigonneau, (N°486)
Nombre de doublons entre deux colonnes
Je voudrais pouvoir compter le nombre de données de la colonne B qui sont également dans la colonne A.
Une formule matricielle permet de répondre à cette question :
{=SOMME(NB.SI(A1:A5;B1:B5))}

Attention! Les accolades ne doivent pas être saisies. La formule :
=SOMME(NB.SI(A1:A5;B1:B5))
doit être saisie telle quelle et validée avec Ctrl+Shift+Enter. Les
accolades sont ajoutées automatiquement par Excel.
Pierre fauconnier

Petite variante :
{=SOMME(1*(Zone1=Zone2))}

ChrisV

Commentaire de AV : sur la formule de Chris :

Avec {=SOMME(1*(A1:A5=B1:B5))} tu fais une comparaison ligne à ligne des 2
plages
Ex. : si on prend les 2 séries de valeurs suivantes : de A1 à A5 :1, 2, 3,
4, 5 et de B1 à B5 : 5, 4, 3, 2, 1
Ta formule renvoie 1 (puisque la matrice renvoyée par le A1:A5=B1:B5 est
(FAUX;FAUX;VRAI;FAUX;FAUX)) pour une valeur commune en ligne 3 alors que le
nbre de doublons est bien 5 !

PS : une variante pour le comptage des doublons :
{=NB(EQUIV(A1:A5;B1:B5;0))}
ChrisV, Alain Vallon, (N°485)
Doublons entre deux plages
Comment trouver s'il y a des doublons entre deux plages de données ?
{=SI(MAX(NB.SI(Données;Données))>1;"Y'a des doublons";
"Pas de doublon")}
à saisir sans les { } et valider par Ctrl+Shift+Entrée

ou petite variante...
{=SI(SOMME(NB.SI(Données;Données))>NB(Données);"Doublons";
"Pas de doublon")}

Complément : va voir aussi là : http://www.cpearson.com/excel/duplicat.htm
ChrisV, (N°484)
Mettre en évidence des données identiques
Comment indiquer par une couleur de fond ou autre qu'une donnée est identique à une autre dans la colonne ?
Sélectionne ta colonne, puis mise en forme conditionnelle, puis tu choisis
"La formule est " et tu tape =A1=B1, puis tu choisis la couleur appropriée.
Il ne faut pas mettre les $ sinon ca ne marchera pas.
Gaétan Mourmant, (N°483)
Afficher en couleur les différences entre deux colonnes
J'ai deux colonnes, A et B comportant environ 300 cellules chacune mais pas forcément le même nombre. Je souhaiterais marquer en rouge les cellules de la colonne A qui ne sont pas dans la B et en vert celles qui y sont. Certaines données peuvent être répétées. Dans certains cas, ça peut être important de faire la discrimination sur la casse.
Trois solutions qui fonctionnent parfaitement sans discriminer la casse :
########################################

Tu sélectionnes la colonne A
format / mise en forme conditionnelle
condition1, la formule est : =RECHERCHEV(A1;$B:$B;1;0)=A1
format / motif / vert bouteille
puis Ajouter condition 2, la formule est
=ET(A1<>"";ESTNA(RECHERCHEV(A1;$B:$B;1;0)))
format / motif / rouge bordeaux

c'est très zouli !
J@C

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Sélection de col A >> MFC >>
Condition 1 : =SI(NB.SI($b:$b;A1)>=1;SI(NB.SI($B:$B;A1)=0;1;0)) >> rouge
Condition 2 : =SI(NB.SI($B:$B;A1)>1;1;0) >> vert

AV

+++++++++++++++++++++++++++++++++++++++
Pour compléter la collection :
avec la plage nommée data (cellules de la colonne B)
et les données de la première colonne où appliquer la MFC à partir de A1

Condition1, la formule est : =OU(A1=data)
Format, vert
Condition2, la formule est : OU(A1<>data)
Format, rouge

ChrisV
***************************************

Pour respecter la casse des caractères (toujours par MFC) :

Condition1: la formule est : =OU(EXACT(A1;Col2))
Format / Police / gras et vert

Condition2: =OU(A1<>Col2)
Format / Police / gras et rouge

ChrisV (2)

Attention :la MEFC plus simple ci dessous
ne fonctionne pas si dans la colonne A deux valeurs sont identiques

Sélection de la colonne A et Condition 1 > Formule :
=SI(NB.SI($B:$B;A1)=1;1;0) > Rouge
Condition 2 > Formule :
=SI(NB.SI($B:$B;A1)>1;1;0) > Vert

AV (2)
Alain Vallon, Jacques Chaussard, ChrisV, (N°482)