Supprimer les doublons ET les lignes correspondantes ?

Bonjour,

voilà mon problème en quelques mots:

j'aimerais en fait supprimer les doublons d'une colonne TOUT EN SUPPRIMANT la ligne correspondante, et ce même si le reste de la ligne n'est pas en double. Si je séléctionne la colonne correspondante et que j'utilise la commande "supprimer les doublons", certes ils sont effacés mais les entrées restantes sont "regroupées" (pas de cellules vides) et se retrouvent donc complètement décalées par rapport aux informations des autres colonnes qui elles ne bougent pas et ne correspondent donc plus du tout. Si je séléctionne toutes les colonnes et que j'utilise la commande, seules sont effacées les lignes parfaitement identiques, j'ai donc au final quasiment autant de doublons dans la colonne dans laquelle je souhaite les supprimer.

Voilà j'espère que vous allez pouvoir m'aider, et bravo pour ce forum (super idée!)

Edouard.

Bonjour,

Peux-tu envoyer ta feuille, en-têtes et quelques lignes suffisent, (anonymisées si besoin)

de façon à régler la macro

Amicalement

Claude.

Voilà une partie du dossier, merci et bonne chance.

Edouard.

re,

Quelle colonne faut-il conserver sans doublons, "A" ou "T" ou autre ?

édit: à partir de la colonne A :

Sub SupprLigneDoublon()
''Macros par Claude Dubois pour "Edouard C" Excel-Pratique le 27 Nov 09
Dim Lg%, i%
    Lg = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    Application.ScreenUpdating = False
        For i = Lg To 2 Step -1
            If WorksheetFunction.CountIf(Range("a:a"), Cells(i, 1)) > 1 Then Rows(i).Delete
        Next i
End Sub

Claude.

C'est les doublons de la colonne A qu'il faut supprimer, ainsi que le reste des lignes correspondantes (un nom ne doit apparaître qu'une seule fois).

Merci!

re,

Je pense que tu n'as pas vu passer mon édit, je le remets ici,

Code à placer dans un module

Sub SupprLigneDoublon()
''Macros par Claude Dubois pour "Edouard C" Excel-Pratique le 27 Nov 09
Dim Lg%, i%
    Lg = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    Application.ScreenUpdating = False
        For i = Lg To 2 Step -1
            If WorksheetFunction.CountIf(Range("a:a"), Cells(i, 1)) > 1 Then Rows(i).Delete
        Next i
End Sub

Bonne soirée

Claude.

Bonjour,

merci pour ton aide, j'ai essayé le code sur une petite partie du fichier et j'ai l'impression que ça fonctionne, j'ai donc lancé l'opération sur le fichier complet (14000 lignes). Bon ça tourne depuis quelques heures, croisons les doigts..

Encore merci.

bonjour,

Bon ça tourne depuis quelques heures, croisons les doigts..

Je regarde pour faire + rapide

tu me diras le temps de traitement final

Claude.

On va attaquer la troisième heure, j'espère seulement que ça n'a pas planté, le gestionnaire des tâches semble indiquer que non..

-- 30 Nov 2009, 15:27 --

C'est tout bon, donc ça a pris environ 3h et là c'est parfait exactement ce que je voulais, merci!

re,

çà ne devrait jamais dépasser les 10 minutes, à moins que ton PC soit un "bousin" !

je crois que tu peux stopper, avec Ctrl+Pause

vois le résultat et dis-moi

Claude.

Le PC à en effet l'air de ramer assez facilement.. Quoi qu'il en soit comme je le disais plus haut ça a bien pris 3h mais c'est tout bon.

re,

la macro s'est arrêter seule ou tu l'a stopper ? (peut-être qu'elle se boucle sur elle-même)

Cette opération sera-elle renouvelable ? si oui il faut revoir avec :

les 1ères lignes réelles du fichier (voir si formules dans ce fichier)

la colonne "D" comporte des formules avec liaison, ce qui peut freiner.

à te lire

Claude.

édit: sur ton fichier réel, à quelle ligne commençaient les données ?

Les données commençaient à la ligne 2 sur mon fichier, et je ne l'ai pas stoppé moi-même mais j'ai constaté que l'inscription "exécution en cours" avait disparu. De toutes façons je n'aurais pas à répéter l'opération donc peut importe le temps qu'elle a prise.

re,

merci de mettre le poste en résolu,

la case à cocher verte

à+.... Claude.

Rechercher des sujets similaires à "supprimer doublons lignes correspondantes"