Repère ligne avec doublons

Rick@

XLDnaute Occasionnel
Bonjour,

Pas vraiment trouvé ce que je cherche, donc je lance...

Il me faut repérer les lignes d'une matrice ayant plus d'une fois la même valeur et sans tenir compte des zéros. Je joins un fichier pour mieux comprendre.

Mille merci à l'avance!
 

Pièces jointes

  • Repère doublons....xls
    14.5 KB · Affichages: 52

Robert

XLDnaute Barbatruc
Repose en paix
Re : Repère ligne avec doublons

Bonsoir Rick@, bonsoir le forum,

Une proposition VBA car je ne sais pas faire par formule :
Code:
Sub Macro1()
Dim i As Byte 'déclare la variable i (Incrément)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

For i = 7 To 34 'boucle 1 : sur les ligne 7 à 34 (à adapter à ton cas)
    Set pl = Range(Cells(i, 1), Cells(i, 6)) 'définit la plage pl (colonnes A à G)
    For Each cel In pl 'boucle 2 : sur toutes les cellules cel de la plage pl
        'si la cellule est diférente de zéro et si le nombre d'occurrences de la valeur de la cellule dans la plage pl
        'est suprérieur à 1, écrir "Doublons dans la colonne H
        If cel.Value <> 0 And Application.WorksheetFunction.CountIf(pl, cel) > 1 Then Cells(i, 8).Value = "Doublons"
    Next cel 'prochaine cellule de la booucle 2
Next i 'prochaine ligne de la boucle 1
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Repère ligne avec doublons

Bonsoir Rick@,
Re Robert :)

J'arrive en retard et Rick@ n'avait pas de préférence, donc juste pour le sport et par formule, ceci en H5 semble fonctionner:
Code:
=SI(SOMMEPROD((NB.SI($A7:$F7;$A7:$F7)>1)*($A7:$F7>0))>0;"Doublon";"")

Bonne soirée,
 

Rick@

XLDnaute Occasionnel
Re : Repère ligne avec doublons

Sans rien enlever à Robert, Modeste tu bonifies ma demande car le code me limitait à 255 lignes (dépassement de capacité). Avec la formule tout est là...

Merci pour l'ajout!

Au plaisir!
 

Modeste

XLDnaute Barbatruc
Re : Repère ligne avec doublons

Bonjour Rick@, Robert :), Philippe :)

Sans rien enlever à Robert
Ah ça je confirme: il vaut mieux éviter, mon pauvre ami ;) 'y a rien à jeter!


Ceci dit, le dépassement de capacité que tu as rencontré était dû au type de variable utilisé pour i (avec ton exemple de départ, le type Byte suffisait pour traiter jusqu'à 255 lignes).
Là où Robert avait ajouté "à adapter à ton cas", il convenait de changer le nombre maximum et -en fonction de ce dernier- adapter également le type de variable (un Integer permettait de gérer +/- 32000 lignes; il aurait fallu choisir un type Long, si tu avais encore plus que 32000 lignes)

Une fois ces modifications apportées, le code proposé par Robert fonctionne sans souci!
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet