Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

éliminer lignes en doublon

romika

XLDnaute Occasionnel
Bonjour,

j'ai deux colonnes dans excel et plusieures lignes. par exemple en A1=ABC, B1=DEF. En A2=DEF et B2=ABC. je voudrais éliminer donc la deuxième ligne car elle est égale à la première à l'envers.

je joins un exemple si ca peut être utile.
j'ai pas besoin de macro forcément, j'essaye avec des formules et filtres, mais j'y arrive pas...

merci pour votre aide.
 

Pièces jointes

  • Classeur1.xlsx
    8.4 KB · Affichages: 62
  • Classeur1.xlsx
    8.4 KB · Affichages: 63
  • Classeur1.xlsx
    8.4 KB · Affichages: 65

romika

XLDnaute Occasionnel
Re : éliminer lignes en doublon

Merci pour la formule, je l'ai essayée et effectivement ça marche, même si je comprends pas trop son sens , mais en rajoutant quelques lignes supplémentaire, elle marche plus.
je joins le nouveau fichier.
une idée? merci
 

Pièces jointes

  • Classeur1.xlsx
    9.2 KB · Affichages: 59
  • Classeur1.xlsx
    9.2 KB · Affichages: 62
  • Classeur1.xlsx
    9.2 KB · Affichages: 63

laetitia90

XLDnaute Barbatruc
Re : éliminer lignes en doublon

bonjour romika JCGL
par macro
une qui tiens compte des majuscules l'autre non
par contre ABC aet considere comme doublon vu que present en ligne 10 & 12

Code:
Sub es()
 Dim m As Object, i As Long, z As Variant
    Application.ScreenUpdating = False
    Set m = CreateObject("Scripting.Dictionary")
       For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
      z = UCase(Cells(i, 1)) & UCase(Cells(i, 2))
            If Not m.Exists(z) Then
            m.Add z, z
            Cells(i, 3) = "ok"
       Else
          Cells(i, 3) = "doublons"
      End If
      z = UCase(Cells(i, 2)) & UCase(Cells(i, 1))
            If Not m.Exists(z) Then
            m.Add z, z
            Cells(i, 3) = "ok"
       Else
          Cells(i, 3) = "doublons"
      End If
      Next i
End Sub

Code:
Sub est()
 Dim m As Object, i As Long, z As Variant
    Application.ScreenUpdating = False
    Set m = CreateObject("Scripting.Dictionary")
        For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
      z = Cells(i, 1) & Cells(i, 2)
            If Not m.Exists(z) Then
            m.Add z, z
            Cells(i, 4) = "ok"
       Else
          Cells(i, 4) = "doublons"
      End If
      z = Cells(i, 2) & Cells(i, 1)
            If Not m.Exists(z) Then
            m.Add z, z
            Cells(i, 4) = "ok"
       Else
          Cells(i, 4) = "doublons"
      End If
      Next i
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : éliminer lignes en doublon

rebonjour
en partant de ton premier exemple toujours par macro

Code:
Sub aa()
Dim i As Long, j As Long, x, z As Variant
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
x = Cells(i, 1) & Cells(i, 2)
For j = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
z = Cells(j, 2) & Cells(j, 1)
If x = z Then Range(Cells(i, 1), Cells(i, 2)).Delete Shift:=xlUp
Next j: Next i
End Sub

'EntireRow.Delete pour suppression ligne complete
eventuellement on peut conbiner code pour supprimer egalement comme ton exemple 2 pour supprimer les identiques ligne 10 & 12
par formule je suis trop mauvaise pour trouver solution desole
 
Dernière édition:

Discussions similaires

Réponses
26
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…