Identifier les doublons de ligne

smileytom

XLDnaute Nouveau
Bonjour à tous,

Décidément j'ai besoin de vous en ce moment !

Je souhaites une macro qui identifie (ie fond cellule rouge) les doublons.
Bon jusque là, question posée mille fois !

Une ligne en doublon est caractérisé par la plage "Ai:Vi" en commun avec la plage ""Ai:Vi"" d'une aure ligne.
Mon problème est que je n'arrive pas à comparer les valeurs de toutes les cellules d'une plage sans faire planter excel...(jusqu'à 600 lignes).
Il dois me manquer une méthode pour les mettres en string rapidement par exemple.

En support le bout de code suivant... j'ai vraiment tenté de toutes les manières que je connais et un peu d'aide serait la bienvenue. En vous remerciant.

Thomas

Code:
Dim CelluleCourante As Range
Dim CelluleSuivante As Range
  
Set CelluleCourante = Range("A3:V3") 'ActiveCell
Do While Not IsEmpty(CelluleCourante)
    Set CelluleSuivante = CelluleCourante.Offset(1, 0)
    If (CelluleSuivante(1, 1).Value = CelluleCourante(1, 1).Value) Then
        CelluleSuivante.Interior.ColorIndex = 3
        CelluleCourante.Interior.ColorIndex = 3
    End If
    Set CelluleCourante = CelluleSuivante
Loop
 

ROGER2327

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Bonjour smileytom
Essayez les procédures suivantes :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim cel As Range
   With Range("A3:V3")
      .Resize(2, .Columns.Count).Interior.ColorIndex = xlNone
      For Each cel In .Cells
         If IsEmpty(cel.Value) Then Exit For
         If (cel.Offset(1, 0).Value = cel.Value) Then cel.Resize(2, 1).Interior.ColorIndex = 3
      Next cel
   End With
End Sub[/B][/COLOR]
ou
Code:
[COLOR="DarkSlateGray"][B]Sub tutu()
Dim cel As Range
   For Each cel In Range("A3:V3").Cells
      If IsEmpty(cel.Value) Then Exit For
      If (cel.Offset(1, 0).Value = cel.Value) Then
         cel.Resize(2, 1).Interior.ColorIndex = 3
      Else
         cel.Resize(2, 1).Interior.ColorIndex = xlNone
      End If
   Next cel
End Sub[/B][/COLOR]
Bon courage.​
ROGER2327
#2207
 

smileytom

XLDnaute Nouveau
Re : Identifier les doublons de ligne

Bonjour ROGER2327,

Si je comprends bien vos exemples, il s'agit la de tester cellule par cellule par rapport à la ligne du dessous (ceci est adaptable).
Mais je souhaites en fait faire un test de doublons sur multi colonne. Si cela était possible, cela pourrait se récapitulé ainsi :

If (Range ("A3:V3").value = Range ("A4:V4").value) then
("A3:V3").Interior.ColorIndex = 3
("A4:V4").Interior.ColorIndex = 3
End if

J'ai par exemple tenté en fesant une boucle pour ajouter dans string = A3 & B3 ...& V3, puis comparer les string, mais sur 600 lignes cela fait planter mon pauvre excel 2000.
Ci-joint un exemple du résultat que je souhaiterais.
 

Pièces jointes

  • Classeur1.xls
    20 KB · Affichages: 80
  • Classeur1.xls
    20 KB · Affichages: 79
  • Classeur1.xls
    20 KB · Affichages: 72

ROGER2327

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re...
J'ai votre classeur sous les yeux, mais je ne comprends toujours pas vos critères de sélection. Je vois bien qu'il ne s'agit pas de comparer deux lignes colonne par colonne. Mais en regardant les lignes 1 et 2, je ne devine pas pourquoi la première est sur fond rouge. Pouvez-vous m'éclairer ?​
ROGER2327
#2212
 

smileytom

XLDnaute Nouveau
Re : Identifier les doublons de ligne

Effectivement, j'ai rempli mon classeur d'exemple un peu vite, je m'en excuse... les 2 premières lignes rouges ne devraient pas être ainsi!

Ci-joint un fichier corrigé.

Donc les critères de sélection sont pour résumé une plage de données = une autre plage de données.
 

Pièces jointes

  • Classeur1.xls
    23.5 KB · Affichages: 74
  • Classeur1.xls
    23.5 KB · Affichages: 79
  • Classeur1.xls
    23.5 KB · Affichages: 75

pierrejean

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

bonjour smileytom

Re bonjour ROGER

Un essai

NB: dans le fichier initial aucune ligne n'etait en doublon
J'en ai créée 2 couples par copie pour valider la macro
 

Pièces jointes

  • smileytom_Classeur1.zip
    3.2 KB · Affichages: 51
  • smileytom_Classeur1.zip
    3.2 KB · Affichages: 47
  • smileytom_Classeur1.zip
    3.2 KB · Affichages: 46

ROGER2327

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re...
Peut-être ceci, si j'ai enfin compris ce qu'il faut faire :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oDat, oCmp, i As Long, j As Long, s As String
   oDat = Intersect(Range("A1").CurrentRegion, Columns("$A:$V")).Value
   ReDim oCmp(1 To UBound(oDat, 1))
   For i = 1 To UBound(oDat, 1)
      For j = 1 To UBound(oDat, 2)
      oCmp(i) = oCmp(i) & "#" & oDat(i, j)
      Next j
   Next i
   For i = 1 To UBound(oCmp) - 1
      s = oCmp(i)
      For j = i + 1 To UBound(oCmp)
         If oCmp(j) = oCmp(i) Then
            Range("A1").Offset(i - 1, 0).Resize(1, 22).Interior.ColorIndex = 3
            Range("A1").Offset(j - 1, 0).Resize(1, 22).Interior.ColorIndex = 3
         End If
      Next j
   Next i
End Sub[/B][/COLOR]
(Je suppose qu'il y a au moins deux lignes de données.)​
ROGER2327
#2213
 

pierrejean

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re

Une variante avec des couleurs differentes permettant de mieux reperer les couples de doublons (limitation par le nombre de couleurs proposées par Excel: 56 au dela on reprend au rouge)
Nota : essayée dans les memes conditions la macro de ROGER ne donne pas les mêmes resultats

Nb: Mes excuses pour le fichier effectivement retourné vide
 

Pièces jointes

  • smileytom_Classeur1_b.zip
    17.4 KB · Affichages: 69

smileytom

XLDnaute Nouveau
Re : Identifier les doublons de ligne

Re
Nota : essayée dans les memes conditions la macro de ROGER ne donne pas les mêmes resultats

Re,
J'ai également fait cet essai, et les résultats sont pour moi les mêmes.
Et c'est exactement ce que je souhaitais!
Je vous remercie tout les deux, je ne pense pas que j'y serais parvenu seul !

Bonne fin de journée à vous,

Thomas
 

ROGER2327

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re-re-re bonjour pierrejean
Inquiet je suis :
Nota : essayée dans les memes conditions la macro de ROGER ne donne pas les mêmes resultats
Sur quelques essais, je n'arrive pas à trouver de différence entre nos résultats (à part la couleur, bien sûr). En avez-vous un sous la main ?
(Nos méthodes sont différentes, mais le principe semble être le même : il serait embêtant que nous obtenions des résultats différents.)​
ROGER2327
#2215
 

pierrejean

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re

Arf !!

Je viens de compendre
avec votre macro et les recopies que j'ai faites tout passe normalement en rouge
Or au tout debut rien ne passait au rouge
C'est effectivement de façon tout a fait abusive que je disais que les resultats sont differents
Mes plus plates excuses
 

ROGER2327

XLDnaute Barbatruc
Re : Identifier les doublons de ligne

Re...
Point besoin d'excuses ! Même si nos mères n'ont pas eu le bon goût de nous présenter, pas de ça entre nous. (Manquerait plus que ça !)
Je suis heureux de savoir qu'il s'agit d'un malentendu : ça nous évite à tous deux une séance de débogage comme on dit dans le milieu, chose jamais très agréable.​
Bonne soirée.
ROGER2327
#2219
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
170
Réponses
3
Affichages
563

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal