Macro Suppression de doublons sur plusieurs colonnes

Bonjour,

Je viens vers vous car j'ai besoin d'aide sur une macro

voici mon problème :

J'ai un tableau avec un nombre important de lignes, il comporte plusieurs colonnes et je souhaiterais avec l'aide d'une macro supprimer les doublons en faisant la comparaison des colonnes de A à G.

Je n'ai pas trouvé quand chose sur le net qui puisse correspondre à mon problème.

j’espère avoir été assez claire

Merci de votre aide

Bonjour,

Je pense que tu dois nous envoyer un fichier pour que nous puissions t'aider.

Avec détails, explications de ton besoin et des résultats que tu souhaites.

Cdlt.

Bonjour Jean- Eric

Voici le fichier pour vous aider à la compréhension de mon problème.

Un grand merci pour votre aide

Pour vous aider

Voici la macro que j'ai pour une colonne, mon souhait serait pour 7 colonnes

est ce que je peux remplacer par une plus large sélection avec Colums ("A:G") ?

merci pour vos réponses

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


Bon bah je vois que personne ne me répond alors je vous laisse profiter de la fin du week end

j'ai certainement du mal m'expliquer.

je vais continuer à chercher !!!

Bonsoir,

C-joint fichier.

Lancer la macro "SupprimerDoublons4C"

Cdlt.

SUPER MERCI BEAUCOUP

BONNE SOIREE ET ENCORE MERCI

Bonjour à vous deux.

En cherchant une solution à un problème, j'ai lu ce fil de discussion et je m'interroge sur la solution qu'il pourrait m'apporter.

Je m'explique :

J'ai une base de données assez importante concernant une collection de disques ou chaque onglet représente une catégorie musicale (Country, blues, guitare, etc...)

Les colonnes de chaque onglet sont identiques et comportent le nom de l'interprète, le nom du disque, les chansons, etc...

Je souhaite lister les différents interprètes ainsi que leur disques sur une feuille unique (Une seule ligne par album).

Je sais lister les occurences par macro sur une seule colonne et j'ai éssayé de faire une colonne après l'autre pour lister tous les artistes avec leurs différents disques mais certains titres de CD peuvent ètre identiques pour des interprètes différents. Ce qui fausse le résultat.

Le but du jeu consisterait à lister sur une feuille tous les interprètes associés à tous leurs disques.

Je joint un bout de fichier et je remercie d'avance ceux ou celles qui voudront bien m'aider.

207cd2010basetest.xlsm (22.47 Ko)

Bonjour

A vérifier

Salut à toi Banzai64 et encore merci de t'être penché sur mon problème.

J'ai collé ta macro dans mon fichier et cela à l'air de fonctionner mais j'ai du interrompre le processus au bout de trente minutes car je croyait qu'il était bloqué. Après examen en pas à pas, il semble que cela fonctionne mais c'est très, très long (j'ai plusieurs centaines de milliers de chansons donc autant de lignes).

Pourrais t'on, peut être, gagner du temps en regroupant les différents onglets sur une même feuille, les trier (Classer par Ordre alpha du chanteur, puis de l'album et enfin de la chanson).

Les mettre sur une nouvelle feuille créée pour l'occasion (Elle sera supprimée ensuite) voir bouton "Créer Recap".

Puis traiter les doublons avec une nouvelle macro.

Peut on adapter ta macro pour ne travailler que sur une seule feuille ?

Merci d'avance.

Bonjour

JohnBill a écrit :

Pourrais t'on, peut être, gagner du temps en regroupant les différents onglets sur une même feuille, les trier (Classer par Ordre alpha du chanteur, puis de l'album et enfin de la chanson).

C'est ce que la macro fait, sauf le tri sur la chanson car on peut pas noter qu'une chanson pour représenter tout un album

Je n'ai pas pu essayer ta macro, car faite avec 2010

JohnBill a écrit :

Peut on adapter ta macro pour ne travailler que sur une seule feuille ?

la macro parcourt toutes les feuilles et récupère les données sauf celle de la feuille de synthèse (dans la macro j'avais pris "ListeDesCD")

Donc si le classeur ne contient qu'une feuille hormis celle-ci, elle ne travaillera que sur une feuille

Merci encore Banzai64.

J'ai fait quelques essais avec ta solution. Tout fonctionne bien. J'ai tenté d'apporter des modifications pour accélérer le traitement car cela est très long (Presque une heure pour près de 350000 lignes).

A + sur le forum

Jean-Eric a écrit :

Bonsoir,

C-joint fichier.

Lancer la macro "SupprimerDoublons4C"

Cdlt.

Bonjour,

Je viens de tomber sur cette Macro, c'est exactement ce qu'il me faut mais malheureusement, la Macro s'arrete lorsqu'une cellule en colonne A n'est pas remplie. dans mon fichier il faut imperativement que la Macro se deroule jusqu'a la derniere ligne remplie pour effectuer le test de doublon sans s'arreter sur les blancs.

Le test doit commencer en A5, B5, C5 et D5 et s'arreter a la derniere ligne remplie du style :

LastRow = shDetail.Range("A5").End(xlUp).Row

Est-il possible de l'integrer a ce code et de faire en sorte que les blancs soient ignorés?

Et de remplacer la suppression de la ligne par un Msgbox disant Entrée double?

Option Explicit
Sub SupprimerDoublons4C()

Dim monDico As Object
Dim i As Integer

    Set monDico = CreateObject("Scripting.Dictionary")

    Application.ScreenUpdating = False

    i = 1
    Do While Cells(i, "A") <> ""
        If Not monDico.Exists(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) Then
            monDico(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) = ""
            i = i + 1
        Else
            Rows(i).EntireRow.Delete
        End If
    Loop

End Sub

Merci d'avance pour votre aide.

Moseran

Personne n'a d'idée?

j'essais plein de trucs que je trouve sur la toile mais rien ne me donne une solution aussi proche que celle la...

Merci d'avance

Moseran a écrit :
Jean-Eric a écrit :

Bonsoir,

C-joint fichier.

Lancer la macro "SupprimerDoublons4C"

Cdlt.

Bonjour,

Je viens de tomber sur cette Macro, c'est exactement ce qu'il me faut mais malheureusement, la Macro s'arrete lorsqu'une cellule en colonne A n'est pas remplie. dans mon fichier il faut imperativement que la Macro se deroule jusqu'a la derniere ligne remplie pour effectuer le test de doublon sans s'arreter sur les blancs.

Le test doit commencer en A5, B5, C5 et D5 et s'arreter a la derniere ligne remplie du style :

LastRow = shDetail.Range("A5").End(xlUp).Row

Est-il possible de l'integrer a ce code et de faire en sorte que les blancs soient ignorés?

Et de remplacer la suppression de la ligne par un Msgbox disant Entrée double?

Option Explicit
Sub SupprimerDoublons4C()

Dim monDico As Object
Dim i As Integer

    Set monDico = CreateObject("Scripting.Dictionary")

    Application.ScreenUpdating = False

    i = 1
    Do While Cells(i, "A") <> ""
        If Not monDico.Exists(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) Then
            monDico(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) = ""
            i = i + 1
        Else
            Rows(i).EntireRow.Delete
        End If
    Loop

End Sub

Merci d'avance pour votre aide.

Moseran

Bonjour,

Pour un tri colonne E sur 150 pages Plage : A5:BF826 vos simples et vos efficaces explications m'ont été de la plus grande aide.... MERCI !

Rechercher des sujets similaires à "macro suppression doublons colonnes"