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

bambifioule Messages postés 16 Statut Membre -  
via55 Messages postés 14393 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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. bambifioule Messages postés 16 Statut Membre
       
      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
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > bambifioule Messages postés 16 Statut Membre
         
        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
      2. bambifioule Messages postés 16 Statut Membre > via55 Messages postés 14393 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
      3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > bambifioule Messages postés 16 Statut Membre
         
        Plusieurs fois que mon message de réponse s'efface
        Je t'ai donc répondu en MP
        Cdlmnt
        Via
        0
  2. bambifioule Messages postés 16 Statut Membre
     
    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