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 :

Recherche et dénombrement de doublons [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut Recherche et dénombrement de doublons
    Bonjour à tous,
    Comme l'indique l'intitulé, je dois effectuer un check au niveau d'une colonne pour savoir s'il y a des doublons sur cette colonne ( bien entendu, je ne dois pas utiliser access mais Excel )

    J'ai penser faire quelque chose comme:
    1)-trier ma feuille (au niveau de la colonne des doublons)
    2)-a l'aide des boucles regarder si la ligne n+1 est la meme que la ligne n

    Le problème c'est que pour une table de plus de 60000 lignes c'est assez long,
    Donc avant de me lancer là dedans, j'aimerai savoir si quelqu'un connait une solution plus propice.

    Merci d'avance
    Cordialement
    Dodo

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Si l'objectif est de supprimer les doublons, tu as avec Excel la méthode RemoveDuplicates. Sinon il faudrait préciser quel doit être le résultat de ta recherche.

    Cordialement,

    PGZ

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    2007 possède des fonctions natives à ce niveau, taper Doublons dans la fenêtre de recherche... et voir si ça convient dans un 1er temps

    Que voulez-vous faire ?

    En savoir plus sur le filtrage des valeurs uniques ou la suppression des valeurs en double
    Filtrer les valeurs uniques
    Supprimer les valeurs en double
    Mise en forme conditionnelle des valeurs uniques ou en double
    cordialement,

    Didier

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut
    Bonjour pgz,
    Non le but n'est pas de supprimer les doublons mais simplement d'avertir l'utilisateur: mettre une étiquette: "Attention ya x doublons"

    En fait j'ai juste besoin de savoir ou sont situé ces doublons, rien de plus, rien de moins: donc pour l'instant j'ai pas d'autres solution que celle sité ci dessus

    Mais si quelqu'un en à une , je suis très largement preneur

    Merci de me venir en aide

    Bonjour Ormonth,

    J'ai regardé de plus près, pour les mise en forme conditionnelle et c'est vrai que c'est très pratique, mais ca fait attrocement ramé mon PC rien qu'avec une seule colonne, donc avec trois , et malheureusement je ne peux pas compter le nombre de doublons avec ça, enfin faudrait que je compte avec un code VBA, donc aussi bien faire ma bonne vieille méthode
    Merci pour vos proposition en tout cas
    Je garde en note l'idée, au cas où
    Coridalement
    Dorian

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien méthodes métrologie sur site
    Inscrit en
    Novembre 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Technicien méthodes métrologie sur site
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2010
    Messages : 107
    Par défaut
    Bonjour,

    j'aurais utilisé la même solution que toi dodo69.
    Si tu souhaite accélérer le déroulement de ta macro ne sélectionne pas forcément les cellule que tu teste, utilise la fonction offset.

    Bon courage.

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Si tu veux juste compter les doublons, je te conseille
    1. trier sur la (les) colonne(s) qui définissent les doublons
    2. charger la plage dans une variable tableau (type variant)
    3. compter les doublons dans cette variable.

    Cela devrait bien accélérer le traitement.

    Cordialement,

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Si tu dois identifier les doublons et que tu peux trier la plage, tu peux utiliser une formule dans Excel.

    Pour tester les doublons dans A1:A100001, tu peux utiliser en B2 une formule qui identifie toutes les occurrences en doublon
    =OU(A3=A2;A2=A1)
    puis filtrer sur les VRAI en B.

    En VBA, tu peux aussi utiliser un objet Dictionary via la librairie "Microsoft Scripting Runtime", en bouclant sur les cellules de la plage et en testant si la valeur existe dans le dictionnaire. si elle n'existe pas, tu l'ajoutes, sinon, tu colores la cellule (par exemple). C'est très rapide sur 100000 lignes. Cette méthode ne colore pas la première valeur en doublon, mais bien toutes les autres occurrences.

    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
    Sub TestDoubons1()
      Dim MonDico As New Scripting.Dictionary
     
      Dim Cellule As Range
     
      Application.ScreenUpdating = False
     
      For Each Cellule In Range("a2:a100001")
        If Not MonDico.Exists(Cellule.Value) Then
          MonDico.Add Cellule.Value, Cellule.Value
          Else
          Cellule.Interior.Color = vbRed
        End If
      Next Cellule
     
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Par défaut
    Salut à tous

    Je vien de me rendre compte que je n'avais pas répondu a vos messages,

    J'ai trouver d'ou venai le problème

    en réalité je n'avais pas préciser qu'il y avait des commentaires dans les cellules

    Et le fait d'effectuer un filtre, ou un trie ou meme une recherche de doublons avec les mise en forme conditionnelle entraine un ralentissement ENORME de tout le système,

    J'ai donc simplement enlever les commentaire pour la recherche de doublons...

    Et les filtres marchent impeccablement bien

    Voila voila
    Merci a vous tous,

    Cdt
    DoDO

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

Discussions similaires

  1. [XL-2007] Rechercher et lister les doublons
    Par Gregk84 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/04/2024, 14h06
  2. Réponses: 6
    Dernier message: 22/09/2014, 16h20
  3. Recherche et effacement de doublons
    Par thebuzzman dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/11/2010, 07h18
  4. Réponses: 12
    Dernier message: 15/07/2010, 18h30
  5. Recherche d'emplacement de doublons
    Par solorac dans le forum Excel
    Réponses: 12
    Dernier message: 17/07/2007, 17h37

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