Posez votre question Signaler

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

franck59 3Messages postés 28 août 2003Date d'inscription - Dernière réponse le 6 mars 2012 à 21: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 

Supprimer des lignes en doublons dans excel »

25 réponses
Réponse
+24
moins plus
Bonjour,

Tu peux à la rigueur faire une extraction sans doublons via le menu Données - Filtre - Filtre élaboré...

a+
ced
Ajouter un commentaire
Réponse
+8
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
Madmartigan - 10 août 2011 à 11:22
Merci j'avais 33000 adresses à trier et c'est fait en 2 minutes....
Michael - 5 sept. 2011 à 11:08
Bonjour, Je n'arrive pas à adapter cette macro à mon document. Comment dois-je procéder?
guard_bobby - 8 sept. 2011 à 11:28
merci pour ce script mon pote.. ça marche à merveille!!! :D
Michael> En fait c'est simple, dans les propriétés de la feuille, tu ouvres le code VB et puis tu colles le script et n'oublies pas de changer le nom de la cellule du début, executes le code et le tour est joué... :D
Ajouter un commentaire
Réponse
+6
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
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
Ajouter un commentaire
Réponse
+3
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
Ajouter un commentaire
Réponse
+2
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
+1
moins plus
Tu peux trouver la réponse ici :

http://www.tout-savoir.net/...
Ajouter un commentaire
Réponse
+1
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
+0
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- 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
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
Ajouter un commentaire
Réponse
+0
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- 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
Eriiik - 3 mars 2011 à 10:05
MERCI !!!!!!!!!!!!!!!!!!
Ajouter un commentaire
Réponse
+0
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- 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...
eriiic- 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
moomine- 26 juil. 2011 à 17:23
merci!!!
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.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?