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 :

Macro suppression de doublons (2 conditions)


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Chargé de projet développement
    Inscrit en
    Janvier 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Chargé de projet développement
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2019
    Messages : 24
    Par défaut Macro suppression de doublons (2 conditions)
    Bonjour,

    J'utilise une macro pour supprimer des référence en doublons dans une même cellule.
    Voici la macro:

    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
    18
    19
    20
    21
    22
    Sub Doublon()
     
    Dim Dico, Doublon As Range
     Set Dico = CreateObject("Scripting.Dictionary")
     On Error Resume Next
     For Each Doublon In Range("A1", Range("A65536").End(xlUp))
     tablo = Split(Doublon, ",")
     For Each Item In tablo
     Item = Application.Trim(Item)
    Dico.Add Item, ""
     Next Item
     Doublon = ""
     For Each duble In Dico.keys
     Doublon = Doublon & ", " & duble
     Next
     Doublon = Left(Right(Doublon, Len(Doublon) - 2), Len(Doublon) - 2)
     For Each duble In Dico.keys
     Dico.Remove duble
     Next
     Next Doublon
     
    End Sub
    Le but c'est que dans un texte exemple :

    Liste1 : A1, A2, A1, Liste2 : A40, A42, A42

    Cela supprime les doublons. Cela fonctionne en partie car le résultat est:

    Liste1 : A1, A2, A1, Liste2 : A40, A42

    Mais le deuxième A1 ne se supprime pas car le premier n'est pas précédé d'une "," mais de ":".

    Pouvez vous m'aider à modifier la macro pour que les deux conditions fonctionnent.

    En vous remerciant bien par avance,

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,

    Une façon de faire, en considérant que le : constitue le marqueur de début:
    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
    18
    19
    20
    21
    22
    23
    Sub Doublon()
       Dim Dico, Doublon As Range, k As Long, debut As String
       Set Dico = CreateObject("Scripting.Dictionary")
       On Error Resume Next
       For Each Doublon In Range("A1", Range("A65536").End(xlUp))
          k = InStr(Doublon, ":")             '<---
          debut = Left(Doublon, k)            '<---
          Doublon = Mid(Doublon, k + 1)       '<---
          tablo = Split(Doublon, ",")
          For Each Item In tablo
             Item = Application.Trim(Item)
             Dico.Add Item, ""
          Next Item
          Doublon = ""
          For Each duble In Dico.keys
             Doublon = Doublon & ", " & duble
          Next
          Doublon = debut & Mid(Doublon, 2)   '<---
          For Each duble In Dico.keys
             Dico.Remove duble
          Next
       Next Doublon
    End Sub
    Bonne continuation.

  3. #3
    Membre averti
    Homme Profil pro
    Chargé de projet développement
    Inscrit en
    Janvier 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Chargé de projet développement
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2019
    Messages : 24
    Par défaut
    Bonjour Eric,

    Merci beaucoup pour ta réponse.

    C'est parfait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] Macro suppression des doublons
    Par Bemirdor dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2019, 16h37
  2. [XL-2016] Macro suppression de ligne sous conditions
    Par Marc175330 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/04/2017, 18h16
  3. [Toutes versions] Macro suppression de lignes selon conditions via userform
    Par mattmata dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2012, 13h08
  4. Macro: Suppression de doublons
    Par Vince001 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/06/2012, 11h08
  5. [XL-2003] macro suppression de doublon avec condition
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/03/2012, 16h18

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