Supprimer doublons - Grand nombre de colonnes a la suite

Bonjour,

J'aurai besoin de votre aide pour un problème qui m'occupe depuis plusieurs jours.

J'aimerai pouvoir effectuer une suppression de doublon (jusque là c'est tout simple), sauf que j'ai en tout, plus de 5000 colonnes. Je voudrais donc trouver un moyen pour que le traitement se fasse automatiquement en supprimant les doublons de la colonne A, puis B puis C etc... jusqu’à la 5000 ème colonne sans que j'ai à cliquer plus de 5000 fois sur "supprimer doublons".

Merci d'avance pour votre aide.

Bonjour,

5000 colonnes en un tableau !!!!

Eh oui, à la base c'était des lignes sur lesquelles je voulais effectuer ma suppression de doublon, donc j'ai transposé mon tableau puisqu'il me semblait plus facile de faire ça sur des colonnes. Dans tout les cas, ça fait une grande quantité d'opérations successives...

Bonjour,

pas facile à lire ce genre de tableau

C'est précisément pour que ma base de données soit plus lisible que je veux faire ça. Actuellement, chacune de mes lignes possède un maximum de 47 variables (qui parfois sont identiques d'où l'intérêt de supprimer les doublons), ce qui est inexploitable.

Je sens que je vais devoir aborder le problème par un angle différent...

Bonjour,

Essaye ceci sur une copie de ton fichier

Ca risque de ramer un peu mais je pense que ça fait ce que tu veux ! Je ne suis pas trop douer en VBA donc ce n'est là qu'une tentative.

Sub test()

Dim i As Long

Application.ScreenUpdating = False

For i = 2 To 5000

Range(Columns(i), Columns(i)).RemoveDuplicates Columns:=1, Header:=xlNo

Next i

Application.ScreenUpdating = True

End Sub

Cordialement,

Vbabeginner

re,

essaye avec ceci

P.

Sub doublonsMoins()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set f = Sheets("feuil1") ' à adapter !!!
Set dico = CreateObject("Scripting.Dictionary")
Set plage1 = [A2].CurrentRegion
For Each c In plage1
  If Not dico.exists(c.Value) Then
    dico(c.Value) = ""
  End If
Next c
Debug.Print dico.Count
On Error Resume Next: Sheets("résultat").Delete: On Error GoTo 0
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "résultat"
Sheets("résultat").Range("A1").Resize(dico.Count, 1) = Application.Transpose(dico.Keys)
End Sub
VBABEGINNER a écrit :

Bonjour,

Essaye ceci sur une copie de ton fichier

Ca risque de ramer un peu mais je pense que ça fait ce que tu veux ! Je ne suis pas trop douer en VBA donc ce n'est là qu'une tentative.

Sub test()

Dim i As Long

Application.ScreenUpdating = False

For i = 2 To 5000

Range(Columns(i), Columns(i)).RemoveDuplicates Columns:=1, Header:=xlNo

Next i

Application.ScreenUpdating = True

End Sub

Cordialement,

Vbabeginner

Chapeau, ça m'a l'air de marcher impeccablement ! Suffit juste de changer le nombre de colonnes selon ce qu'on a. Un grand merci !

Par curiosité j'ai également essayé ta macro patrick1957, mais ça ne fonctionne pas, j'obtiens un message d'erreur et je n'ai malheureusement pas les compétences pour en trouver la source ^^, merci tout de même pour la tentative !

Re,

Bah dis donc ! une macro à moi qui fait l'affaire !!!

Ravi si cela te convient !

Cordialement,

Vbabeginner

Bonjour,

peux tu me dire sur quelle ligne ça plante et mettre une petite partie de ton fichier ici ? (10 lignes x 10 colonnes)

(pour ma culture perso )

P.

Bien sur.

Ces colonnes sont déjà issues d'une transposition. Et ce sont donc les lettres (de a à v) qu'il faut dédoublonner (je t'épargne la nomenclature pompeuse qui est derrière ces lettres :p).

En testant sur un petit échantillon ça donne finalement un résultat mais pas celui escompté.

ok...

normal je n'avais pas compris comme cela, mais plutôt regrouper l'ensemble dans une seule colonne

sorry , mon esprit mononeurone me joue encore des tours

Pas de soucis, merci quand même !

Rechercher des sujets similaires à "supprimer doublons grand nombre colonnes suite"