Répérer les lignes dont les valeurs doublonnent sur une plage

bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !
Voici un petit tableau dans lequel j'aimerais faire apparaître les doublons lorsqu'Excel détecte que les 3 valeurs sont les mêmes, mêmes si elles sont positionnées dans un ordre différent. Ce qui est le cas en ligne 2 et en ligne 4 par exemple.
Ligne 2 : 1998 2000 2005
Ligne 4 : 2005 1998 2000

Quelqu'un aurait-il une formule pour résoudre ceci ? Un grand merci par avance.

2 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour bambifioule

Par formule, longue formule en D1, à étirer ensuite :
=SI(ET(SIERREUR(EQUIV(A3;$A$2:$A$5;0);0)+SIERREUR(EQUIV(A3;$B$2:$B$5;0);0)+SIERREUR(EQUIV(A3;$C$2:$C$5;0);0)<>LIGNE()+1;SIERREUR(EQUIV(B3;$A$2:$A$5;0);0)+SIERREUR(EQUIV(B3;$B$2:$B$5;0);0)+SIERREUR(EQUIV(B3;$C$2:$C$5;0);0)=SIERREUR(EQUIV(A3;$A$2:$A$5;0);0)+SIERREUR(EQUIV(A3;$B$2:$B$5;0);0)+SIERREUR(EQUIV(A3;$C$2:$C$5;0);0);SIERREUR(EQUIV(C3;$A$2:$A$5;0);0)+SIERREUR(EQUIV(C3;$B$2:$B$5;0);0)+SIERREUR(EQUIV(C3;$C$2:$C$5;0);0)=SIERREUR(EQUIV(A3;$A$2:$A$5;0);0)+SIERREUR(EQUIV(A3;$B$2:$B$5;0);0)+SIERREUR(EQUIV(A3;$C$2:$C$5;0);0));"doublon";"")

mais possible aussi avec une fonction personnalisée, exemple à partir de tes données :
https://www.cjoint.com/?0DAoORYTWJT

Cdlmnt
Via
0
bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Hello, merci infinement pour cette réponse ! Concernant la macro j'aurais besoin de l'adapter pour détecter les doublons sur 5 colonnes.
Je suis entrain de compléter le code que tu as écrit, mais sur la fin, je ne sais pas trop comment faire :

Function doublons(cellule As Range)
doublons = ""
Dim dl As Long
'derniere ligne remplie
dl = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
'ligne et colonne de la plage
lig = cellule.Row
col = cellule.Column
' valeurs de la cellule et des 2 cellules à droite
a = Cells(lig, col).Value
b = Cells(lig, col + 1).Value
c = Cells(lig, col + 2).Value
d = Cells(lig, col + 3).Value
e = Cells(lig, col + 4).Value
'boucle sur les lignes du tableau
For t = 2 To dl
' si autre ligne que celle de la formule
If t <> lig Then
' valeurs des 3 cellules de cette ligne
a2 = Cells(t, col).Value
b2 = Cells(t, col + 1).Value
c2 = Cells(t, col + 2).Value
' comparaison avec les valeurs de la ligne de la formule et si identique doublon
If (a = a2 And (b = b2 And c = c2 Or b = c2 And c = b2)) Or (a = b2 And (b = a2 And c = c2 Or b = c2 And c = a2)) Or (a = c2 And (b = b2 And c = a2 Or b = a2 And c = b2)) Then doublons = "doublon"
End If
Next
End Function
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Avec 5 colonnes ç'est plus complexe il faut envisager tous les cas de figure dans le IF; ça devient mission sinon impossible mais du moins ardue car là il n'y a pas 6 possibilités comme précédemment mais 120 !!
Il faut trouver une autre méthode; j'y réfléchis et je te fais retour dès que possible
0
bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
Oki c'est bien ce que je pressentais lorsque j'ai vu les combinaisons dans le code !
Merci à toi, c'est vraiment très sympathique de rendre service ;)
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Plusieurs fois que mon message de réponse s'efface
Je t'ai donc répondu en MP
Cdlmnt
Via
0
bambifioule Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Un grand merci pour ces deux solutions.
La première n'a pas très bien marché sachant que je comptais ajouter des nombres en dessous de la liste existante. Par contre le fichier avec la macro fonctionne super bien !





Très bonne soirée à toi et encore merci pour ton aide !
0