supprimer doublons sur 40000 lignes

eillon

XLDnaute Junior
Bonjour,

Je recherche un "truc" un peu complexe, sur deux listes de 20 000 lignes, il faut que je dégage les doublons et comparer si les restant appartiennent à la liste 1 ou 2.

Je peux mettre les lignes sur colonnes A et B de la même feuille.

En fait je voudrais déplacer les doublons colonnes A et B en Feuil2 et qu'il reste dans chaque colonne Feuil1 les uniques correspondant aux colonnes.
 

Pièces jointes

  • exemple1.xls
    15.5 KB · Affichages: 133
  • exemple1.xls
    15.5 KB · Affichages: 138
  • exemple1.xls
    15.5 KB · Affichages: 133

skoobi

XLDnaute Barbatruc
Re : supprimer doublons sur 40000 lignes

Bonsoir bhbh, eillon,

voici un autre code.
Cette macro tien également compte des doublons qui sont dans la même colonne.

Code:
Sub test()
Dim copier As Boolean, doublon As Boolean
Dim liste As New Collection

For ligneG = Range("a65536").End(xlUp).Row To 1 Step -1
    On Error Resume Next
    liste.Add Cells(ligneG, 1), CStr(Cells(ligneG, 1))
    If Err.Number <> 0 Then
        Cells(ligneG, 1).Delete
        GoTo suite
    End If
    On Error GoTo 0
    doublon = False
    copier = False
    For ligneD = Range("b65536").End(xlUp).Row To 1 Step -1
        If Cells(ligneD, 2) = Cells(ligneG, 1) Then
            doublon = True
            If copier = False Then
                Sheets(2).Range("a65536").End(xlUp).Offset(1, 0) = Cells(ligneD, 2)
                copier = True
            End If
            Cells(ligneD, 2).Delete
        End If
    Next
    If doublon = True Then
        Cells(ligneG, 1).Delete
    End If
suite:
Next
        
End Sub
 

jeanpierre

Nous a quitté
Repose en paix
Re : supprimer doublons sur 40000 lignes

Bonsoir eillon, re bhbh, skoobi,

Dans Insertion/Nom/Définir tu te positionnes sur Base et tu modifies dans fait référence à : et tu remplaces après B$ le 11 par ce que tu veux 40000, par exemple.

Celà risque d'être beaucoup plus long.

Bon courage.

Jean-Pierre

Edit : ben oui bien mieux bhbh
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : supprimer doublons sur 40000 lignes

Bonsoir,
ceci n'était qu'un exemple, comme d'ailleurs ton fichier....
tu auras remarqué dans le code :

Range("base")

la zone nommée base dans le fichier est figée, il ne reste qu'à le rendre dynamique.
Pour ceci, tu fais Insertion/Nom/Définir, tu cliques sur "base", et tu colles en bas dans la cellule "Fait référence à : "

=DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);2)

valable pour x lignes (à concurrence de 65536) et 2 colonnes

Edit : collision jeanpierre
pour le temps de travail, avec le filtre élaboré, c'est quand même assez rapide, même si la formule NB.SI prend un peu de temps.
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : supprimer doublons sur 40000 lignes

Re,

Peux-tu expliquer ton lien ?, il n'apporte rien

En fait, je l'avais vu plus tôt, et heureusement que je suis de bonne humeur.
Le multipostage, c'est bien mais merci de le préciser pour ceux qui bossent pour toi
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : supprimer doublons sur 40000 lignes

Bonsoir,
tu fais de la publicité comparative? ;)
Je n'ai pas ouvert les fichiers proposé sur l'autre site, mais d'après ton énoncé, ma solution te donne le bon résultat.
Au lieu de montrer d'autres solutions, dis ce qui cloche dans les diverses solutions parce que voir ceci sur un autre site :

Sinon j'ai ça, mais je trouve que ça reste long, je ne sais pas si on peut accélérer une macro...
il est vrai que 40000 lignes, ça fait beaucoup.

code fourni par Skoobi, et dont tu n'as jamais fait la même remarque...
Explique exactement ce que tu veux, ou multi-poste à ton goût, mais ai au moins la décence de faire tes remarques concernant une solution sur le fil te l'ayant fourni

Edit : jeanpierre, on dirait que je suis de moins bonne humeur que toi
 

jeanpierre

Nous a quitté
Repose en paix
Re : supprimer doublons sur 40000 lignes

Re bhbh,

D'accord avec toi, c'est agaçant, surtout si l'on présente ton code ailleurs en disant : j'ai fait ça et ça marche pas....

Je n'ai pas tout suivi sur l'affaire, mais ce n'est pas la première fois.... ce genre de truc...

On multiposte, je dis POINT FINAL... On présice, c'est sympa., simple et sans plus de conséquence....

On va me prendre pour le chien de garde, mais je n'y tiens pas compte tenu de la nouvelle loi..... Risquerais de me faire piquer avant terme....

Salut à toi... et pour l'humeur, ce soir et là dessus, elle s'est un peu dégradée....

Donc, tu n'es pas seul

Jean-Pierre
 

Discussions similaires

Réponses
10
Affichages
304

Statistiques des forums

Discussions
312 755
Messages
2 091 706
Membres
105 052
dernier inscrit
HAMOUD