Posez votre question Signaler

Supprimer des lignes en doublons dans excel [Résolu]

franck59 3Messages postés jeudi 28 août 2003Date d'inscription 5 novembre 2003 Dernière intervention - Dernière réponse le 16 oct. 2014 à 09:22
Bonjour !

J'ai un trés gros fichier excel qui contient plusieurs fois les mêmes lignes avec les mêmes infos. Comment supprimer les lignes redondantes ?
Merci beaucoup.
Lire la suite 
Réponse
+33
moins plus
Bonjour,

Tu peux à la rigueur faire une extraction sans doublons via le menu Données - Filtre - Filtre élaboré... voir ici :
http://www.commentcamarche.net/faq/19343-supprimer-les-doublons-dans-une-colonne-excel

a+
ced
Ajouter un commentaire
Réponse
+15
moins plus
Bonjour,

Vous pouvez essayer ce scripts. Il suffit juste de l'intégrer dans un module et exécuter la fonction.

Sub supprimeDoublons()

MaCellule = ("B6")
Range(MaCellule).Select
ActiveCell.CurrentRegion.Sort Key1:=Range(MaCellule), Order1:=xlAscending, Header:=xlYes
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select

While ActiveCell <> ""
If ActiveCell = donnee1 Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
Else
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
End If
Wend
End Sub
jc- 3 avril 2013 à 15:18
Merci pour cette macro!
Répondre
Sweetsheep- 15 avril 2013 à 15:01
Un grand merci!
Cette formule est géniale !!!
Répondre
Nico- 15 oct. 2013 à 11:23
Bonjour,

MAJ pour les fichiers comportant beaucoup de lignes, la macro ci-dessus n'étant pas très efficace pour les fichiers imposants.
Il suffit d'utiliser la fonction RemoveDuplicates qui fait exactement comme la fonction manuelle passant par Données/Supprimer les doublons.

Un petit exemple pour illustrer:
Range("E2", "H8000").RemoveDuplicates Columns:=Array(1,2)

Il suffit de définir la plage à traiter (ici [E2:H8000]) et les colonnes comportant des doublons (ici Array(1,2) pour les colonnes 1 et 2 de la sélection, soit E et F). Si aucune colonne de doublon n'est renseignée, la fonction suppose que toutes les colonnes comportent des doublons.
Grâce à ça, il est possible de faire une suppression simple ou multicritères des doublons en fonction des colonnes de doublons définies (Array).
Aucun tri préalable des données n'est nécessaire.

Pour vous donner une idée du gain de temps: sur 8500 lignes avec 5 colonnes à traiter, la fonction prend moins de 30 secondes contre 15 minutes environ pour la macro ci-dessus.

Bon courage!
Nico
Répondre
Johan- 7 août 2014 à 11:40
Merci beaucoup !
Répondre
Ajouter un commentaire
Réponse
+14
moins plus
Dans Office 2010 (et peut-être même dans 2007), c'est très simple, il suffit de sélectionner le tableau sur lequel on veut supprimer les doublons, aller à l'onglet DONNÉES, puis dans OUTILS DE DONNÉES cliquer sur "Supprimer les doublons".

Et c'est automatique et beaucoup plus efficace que de saisir dans une colonne supplémentaire des codes à base de =SI(NB.SI($C$2:C2;C2)>1;"Doublon";"")
{ce qui marche aussi...}
Sacho- 26 juil. 2011 à 16:27
J'ai essayé mais ca a tout supprimé, cest a dire que s'il y a deux lignes en doubles, cela va supprimé les deux ligne mais moi je voudrais en garder une seule
Répondre
Clement_- 26 août 2011 à 15:19
Sacho, comment as tu reussi a supprimer les deux doublons ? c'est exactement ce que je cherche a faire sans succes...merci
Répondre
Mahmoud- 12 déc. 2012 à 13:19
Cliquer sur la première cellule->Données -> Supprimer les doublons-> Ne pas oublier de cocher "Mes données ont des en-têtes" pour ne pas tout supprimer
Répondre
Adamo- 29 août 2013 à 13:46
Comment supprimer les doublons sans supprimer les valeurs: "" ?
Répondre
Brianeau- 27 août 2014 à 09:54
Fonction parfaite et simple merci!
Répondre
Ajouter un commentaire
Réponse
+5
moins plus
Bonjour Erdna69,

Dans une colonne libre tu peux mettre :
=ET(EQUIV(B2;B:B;0)<>LIGNE();D2=INDEX(D:D;EQUIV(B2;B:B;0)))
et filtrer sur la valeur VRAI pour avoir les doublons (colonnes B et D identiques)

ou bien :
=SI(ET(EQUIV(B2;B:B;0)<>LIGNE();D2=INDEX(D:D;EQUIV(B2;B:B;0)));EQUIV(B2;B:B;0);"")
si tu préfères avoir le n° de la 1ère ligne où apparait ta combinaison.

eric
Vero- 6 mars 2012 à 21:22
bonjour;

la formule :

=ET(EQUIV(B2;B:B;0)<>LIGNE();D2=INDEX(D:D;EQUIV(B2;B:B;0)))
et filtrer sur la valeur VRAI pour avoir les doublons (colonnes B et D identiques)

est-elle modifiable avec une colonne identique supplémentaire ?? (exemble colonnes B / D et E identiques) ?

j'ai essayé, mais sans succès.... :-(

merci d'avance de votre aide
Répondre
Ajouter un commentaire
Réponse
+4
moins plus
Bonjour, au cas où ça intéresserait quelqu'un, j'ai trouvé une astuce pour pouvoir virer des lignes en doublons en fonction des colonnes que vous voulez, sans script.

La première chose à faire est de sélectionner tout le document, puis faire données=> trier => et trier vos données en fonction des colonnes que vous voulez regarder, de manière à ce que les lignes en doublons soient les une juste après les autres. (si une ligne est comme une autre pour la colonne, elle est juste derrière cette ligne).

Puis vous rajoutez une colonne. Dans cette colonne, à la seconde ligne, vous mettez une formule de ce type:
=SI(ET([colonne1]2=[colonne1]1;[colonne2]2=[colonne2]1;....);1;0)

colonne1, colonne2, etc... correspondant aux colonnes pour lesquelles vous voulez regarder.
Grâce à ca, les "bonnes lignes" sont marquées avec des 0, et les doublons avec des 1.

Ensuite vous sélectionnez la nouvelle colonne ainsi remplie, vous copiez, et vous faites clic droit => collage spécial => valeurs. Ainsi le contenu de la colonne reste inchangé, mais devient "en dur" sans la formule précédente.
Enfin vous sélectionnez tout votre document, et vous faites données => trier => sur la colonne nouvellement crée.
Ainsi vous vous retrouvez avec toutes les "bonnes lignes" suivies par tous les doublons (marqués par des 1 dans la colonne rajoutée).
Vous n'avez pu qu'à sélectionner facilement tous les doublons, et les supprimer.

Ca fonctionne parfaitement si vous voulez trier sur toutes les colonnes à la fois.
Si vous voulez faire que sur certaines colonnes, celles-ci étant multiples, c'est un peu plus compliqué, et il faut réfléchir un peu avant d'agir.
Mais si vous n'avez pas envie de vous prendre la tête, vous pouvez toujours répéter l'astuce plusieurs fois en faisant les colonnes une par une...
Dans tous les cas ça reste relativement rapide à faire, et la seule erreur possible est d'oublier certains doublons si on fait sur plusieurs colonnes en même temps... Dans tous les cas vous ne supprimerez pas de lignes n'étant pas des doublons.
Et cela a le mérite d'être compréhensible quand on ne connaît pas le langage de script d'excel ^^
Ajouter un commentaire
Réponse
+3
moins plus
Ajouter un commentaire
Réponse
+3
moins plus
Salut Eric,
Super de bosser pour moi jusqu'à près d'1 heure du matin !
J'ai testé ta macro sur mes données réelles, ça marche, c'est exactement ce que je voulais. C'est génial, Merci Eric
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour à tous,

Ce code fonctionne très bien mais malheureusement j'essaye en vain d'adapter ce code à une recherche de doublons sur deux colonnes. Un doublon sera alors une ligne dont la colonne B et E sont égales à celles d'une autre ligne.

Est-ce possible ? Merci d'avance.
Erdna69 3Messages postés lundi 16 août 2010Date d'inscription 17 août 2010 Dernière intervention - 16 août 2010 à 18:48
Bonjour,
J'ai moi aussi le même problème: suppression de doublons créés à partir de 2 colonnes, as tu trouvé une solution? par avance merci
Répondre
bart- 21 avril 2011 à 16:56
il te suffit de fusionner tes deux colonnes en une seule... (=B1&B2). Ensuite tu lances ta recherche de doublons sur cette nouvelle colonne
Répondre
Ajouter un commentaire
Réponse
+1
moins plus
Merci eriiic pour ta réponse. En fait j'ai simulé un exemple d'enregistrement ci dessous et je souhaite dans cet exemple que les lignes 3 (retrouvé en ligne 7), 8 (retrouvé en ligne 9) et 15 (retrouvé en ligne 16) disparaissent. Dans la 1ère colonne j'ai repris ta macro.



VRAI A 35509
FAUX B 35509
FAUX A 35510
VRAI B 35510
VRAI C 35510
FAUX D 35510
FAUX A 35510
FAUX A 40811
FAUX A 40811
FAUX A 23414
FAUX B 25100
FAUX B 26321
FAUX A 54233
FAUX C 43660
FAUX A 76987
FAUX A 76987
FAUX A 43555
FAUX A 56432
#N/A C 56432
eriiic 18039Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 17 juin 2015 Dernière intervention - 17 août 2010 à 00:46
Je me suis peut-être fourvoyé dans ma formule bien que je l'ai testée...
Pour ton cas on va faire autrement car apparemment tu désires éliminer les 1ères occurrences et non les dernières, et utiliser une colonne supplémentaire pour simplifier.

Ajout de 2 colonnes :
- dans la 1ère concatener tes 2 valeurs: =A2&B2
- dans la 2nde: =SI(NB.SI(C3:$C$100;"=" &C2);"doublon";"ok")

Filtrer sur cette dernière pour afficher la valeur 'doublons'
Sélectionner la 1ère ligne,
Shift-clic sur la dernière pour toutes les sélectionner
Clic-droit sur la sélection et 'supprimer la ligne'

exemple
Dans l'exemple il y a une colonne supplémentaire des fois que finalement tu veuilles conserver la 1ère occurrence marquer comme doublons les suivantes.

eric
Répondre
Eriiik- 3 mars 2011 à 10:05
MERCI !!!!!!!!!!!!!!!!!!
Répondre
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

J'ai essayé d'effacer mes doublons via les differentes solutions suggerees mais ca ne marche toujours pas...

Jai une colonne ou il y a des doublons.

Par exemple:

pommes
pommes
pommes
poires
poires
poires
poires

Ce que j'aimerais c'est d'effacer les doublons, sans oublier de garder une ligne a chaque fois.

Je pourrais faire ca mannuellement mais jai des centaines de lignes...

Quelqu'un connait un moyen?
moomine 42Messages postés lundi 20 juin 2011Date d'inscription 16 janvier 2012 Dernière intervention - 22 juil. 2011 à 12:15
Je me demandais.... ne serait il pas possible d'utiliser la formule SI... par contre je ne connais pas vraiment les termes pour bien l'ecrire...

Se serait: Si la ligne 2 est la meme que la ligne precedente (ligne1), alors effacer cette ligne ou afficher "doublon" et jeffacerai manuellement...
Répondre
eriiic 18039Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 17 juin 2015 Dernière intervention - 22 juil. 2011 à 12:40
Bonjour,

à saisir en ligne 2 :
=SI(A2=A1;"doublon";"ok")
à recopier vers le bas, mais ta liste doit être triée

une formule qui marche sur une liste non triée :
=SI(EQUIV(A2;A:A;0)=LIGNE();"ok";"doublon")

Pour supprimer les doublons :
- mettre des titres de colonne en ligne 1
- y mettre un filtre automatique
- sélectionner "doublon" à l'aide du filtre auto
- sélectionner la ligne du 1er doublon
- shift+clic sur la ligne du dernier pour les sélectionner toutes
- clic-droit puis 'supprimer la ligne'

eric
Répondre
moomine 42Messages postés lundi 20 juin 2011Date d'inscription 16 janvier 2012 Dernière intervention - 26 juil. 2011 à 17:23
merci!!!
Répondre
mayrone- 16 oct. 2014 à 09:22
bonjour,
Je recherche un script qui :
si doublon des deux lignes dans colonne B, copier la cellule de la deuxième ligne en colonne F dans la première et supprimer la deuxième ligne.
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Une autre solution existe si vous travaillez sur des outils en ligne genre google drive, où là on peut manipuler et trier des colonnes mais avec beaucoup moins d'options que dans le logiciel xls.
J'ai rencontré des plantages en voulant manipuler des fichiers xls en ligne car mes fichiers contenaient plus de 50 000 adresses mails et le navigateur n'arrivait pas à gerer.
Une solution pour dédoublonner 1 colonne est de l'exporter (format csv par exemple : il va donc mettre 1 mail / ligne) et ensuite de dédoublonner sur ce genre d'outil en ligne gratuit : http://www.jerome-pasquelin.fr/tools/dedoublonner.php
L'outil va traiter le texte et dédoublonner si 2 lignes sont identiques pour ensuite fournir un contenu sans doublon.
Il suffit de réimporter dans excel ensuite. C'est un peu plus long mais c'est la seule solution que nous avons trouvé à l'heure actuelle pour traiter de gros formats de données sous Drive, sans installer de logiciel (à cause du partage collaboratif)
Ajouter un commentaire
Ce document intitulé «  supprimer des lignes en doublons dans excel  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.