IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-03] Supprimer les doublons d'une liste


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 54
    Points
    54
    Par défaut [E-03] Supprimer les doublons d'une liste
    Bonjour,

    J'ai une liste d'élément assez longue avec des doublons.
    Quel est le moyen le plus rapide de créer une nouvelle liste sans doublon?

    Je cherche un moyen qui me donnera le résultat rapidement car ça alourdit terriblement ma macro.

    Merci de votre aide!

    PS : j'utilise Excel 2003

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    Bonjour! Voilà déjà quelque chose. Le seul hic est que les valeurs de la colonne A doivent être ordonnés. Si les valeurs ne sont pas en ordre, il faudra ajouter un loop supplémentaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    oldvalue = ""
    i=1
    j=1
    newvalue = trim(Range("A" & i))
    do while not trim(newvalue ) <> ""
     
    	if newvalue <> oldvalue then
    		Rang("B" & j) = trim(newvalue)	
    		j=j+1
    	end if
    	oldvalue = = trim(Range("A" & i))
    	i=i+1
    	newvalue = trim(Range("A" & i))
    loop
    Bonne chance...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 54
    Points
    54
    Par défaut
    Est ce que ce sera plus rapide que le filtre avancé d'Excel?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour,

    Dans la FAQ ou dans un tuto (je ne sais plus) , il y a un exemple d 'élimination des doublons avec une collection.

    Une discussion en rapport
    http://www.developpez.net/forums/d61...raite-doublon/

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Bonsoir



    En utilisant Scripting.Dictionary

    (ici dans la colonne A)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub MACRO_TESTdoublons()
    Dim a, aWS As Worksheet
    Dim r As Range, txt As String
    Set aWS = _
        ActiveSheet
        With CreateObject("Scripting.Dictionary")
        For Each r In Intersect(aWS.Columns("A"), _
        aWS.UsedRange.Rows)
            If Not .exists(r.Value) Then
                .Add r.Value, Nothing
            Else
                txt = txt & "," & r.Address(0, 0)
            End If
        Next
        End With
    If Len(txt) Then aWS.Range(Mid(txt, 2)).Delete Shift:=xlUp
    End Sub
    @+

    J. L

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 54
    Points
    54
    Par défaut
    Merci de votre aide!!!!

Discussions similaires

  1. Réponses: 16
    Dernier message: 03/06/2014, 07h39
  2. Supprimer les doublons d'une liste déroulante
    Par zanzie dans le forum Flash
    Réponses: 1
    Dernier message: 11/04/2011, 08h34
  3. Supprimer les doublons dans une liste
    Par inforum dans le forum SL & STL
    Réponses: 2
    Dernier message: 22/11/2009, 15h21
  4. Supprimer les doublons d'une liste
    Par bibi206 dans le forum Scheme
    Réponses: 23
    Dernier message: 13/06/2009, 09h53
  5. Réponses: 10
    Dernier message: 19/09/2006, 03h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo