Garder les doublons et supprimer les références uniques

  • Initiateur de la discussion Initiateur de la discussion Boby71C
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Boby71C

XLDnaute Impliqué
Bonjour à tous
Je ne suis pas comme tout le monde, d' habitude, nous cherchons à supprimer les doublons et moi, c'est l'inverse.

J'ai un fichier de plusieurs miliers de lignes dans lequel je désir garder les lignes dont les références figurent plusieurs fois et supprimer les lignes qui apparaissent une seul foi.
ex:
A
A
A
B
C
C
D

dans ce cas de figure, je garde TOUTES les références A et CJe supprime les référence B et D.

Merci pour votre aide
@+
 
Re : Garder les doublons et supprimer les références uniques

Bonjour,

une question: est-ce que la liste est triée? Ca sera plus facile à faire et surtout plus rapide (enfin j'éspère 😀) vu le nombre de lignes.
ca c est clair....

sinon dans un cas non trié essai ca :
Code:
Sub test()
For i = 1 To Range("A65536").End(xlUp).Row
    nom = Cells(i, 1)
    For y = 1 To Range("A65536").End(xlUp).Row
        If nom = Cells(y, 1) Then
            cpt = cpt + 1
        End If
    Next y
    If cpt < 2 Then
        For z = 1 To Range("A65536").End(xlUp).Row
            If Cells(z, 1) = nom Then
                Rows(z).Select
                Selection.Delete Shift:=xlUp
                i = i - 1
            End If
        Next z
    End If
    cpt = 0
Next i
End Sub

PS : je pense qu on peut pas faire plus long 🙂
 
Re : Garder les doublons et supprimer les références uniques

bonjour à tous,

Une proposition:

Code:
Sub supprimerUniques()
 Dim plage As Range
 Dim Ligne As Long, cpt As Long
 On Error GoTo FinSuppr
 Application.ScreenUpdating = False
 Application.Calculation = xlCalculationManual
 With Sheets("Feuil3")
    Set plage = .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)
    cpt = plage.Rows.Count
    For Ligne = cpt To 1 Step -1
        If Application.CountIf(plage, plage.Cells(Ligne, 1)) = 1 Then
           plage.Cells(Ligne, 1).EntireRow.Delete
        End If
    Next Ligne
 End With
FinSuppr:
 Application.Calculation = xlCalculationAutomatic
 Application.ScreenUpdating = True
End Sub

Chez moi 4 secondes pour 7443 lignes
 
Re : Garder les doublons et supprimer les références uniques

Bonjour à tous

une autre solution, comme c'est fait je donne...

Code:
Sub test()
Dim x As Long, l As Long, c As Range
Application.ScreenUpdating = False
x = Range("A65536").End(xlUp).Row
For l = x To 1 Step -1
    Set c = Range("A1:A" & x).Find(Range("A" & l).Value, Range("A" & l), xlValues, xlWhole, , , False)
    If c.Row = l Then Rows(l).Delete
Next l
Application.ScreenUpdating = True
End Sub

bon après midi
@+
 
Re : Garder les doublons et supprimer les références uniques

Re,

salut suistrop, Hasco Pierrot 🙂,

tant qu'on y est, voici ma proposition:

Code:
'cette macro supprime la ligne d'une référence unique (la liste doit être triée)
Sub del_unique2()
t = Timer
Application.ScreenUpdating = False
Set plage = Rows(65536)
lig = 1
derlig = [A65536].End(xlUp).Row
Do While lig <= derlig
  nbre = Application.WorksheetFunction.CountIf(Range([A1], [A1].End(xlDown)), Range("A" & lig))
  If nbre = 1 Then Set plage = Union(plage, Rows(lig))
  lig = lig + nbre
Loop
plage.Delete
Application.ScreenUpdating = True
Debug.Print Timer - t
End Sub

La durée peut varier fortement en fonction du pourcentage de référence unique à supprimer.
 
Re : Garder les doublons et supprimer les références uniques

Salut tous,
Salut Skoobi🙂

@Skoobi, connais-tu les limites de Union. J'avais bien pensé à une telle solution mais je n'en connais pas les limites?

Merci

A+
 
Re : Garder les doublons et supprimer les références uniques

Hello boisGontier🙂

C'est si simple!

La question est "Pourquoi faire simple quand on peut faire compliqué?"

arf...arf... comme dirai notre ami JC
 
Re : Garder les doublons et supprimer les références uniques

Bonsoir à tous
Merci pour toutes vos propositions.
Le filtre élaboré de boisGontier va pas car il supprime également les doublons alors que je dois impérativement garder les deux références identiques.
Merci quand même pour ton aide car pas plus tard que cette semaine, j'ai dit à mon chef de service qu'il faudrait que je me penche sur le sujet car je suis un accro d'excel mais je ne connais pas les filtres élaborés.

Merci à tous et excellent Week end
 
Re : Garder les doublons et supprimer les références uniques

>Le filtre élaboré de boisGontier va pas car il supprime également les doublons alors que je dois impérativement garder les deux références identiques.

Il suffit de ne pas cocher extraction sans doublons


JB
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
388
Réponses
26
Affichages
1 K
Réponses
22
Affichages
1 K
Retour