Recherches de doulons dans une liste

  • Initiateur de la discussion Initiateur de la discussion Adamev
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Adamev

XLDnaute Occasionnel
Bonjour ;
Dans une petite base de donnée j’ai les entêtes suivantes : N° (Clé primaire), Nom, Prénom, DateNaissance, LieuNaissance.
Je voudrais connaitre les Nos des personnes ayant le même nom, le même prénom.
Par formules ou par VBA.
Merci d’avance
 
Re : Recherches de doulons dans une liste

Hello,

Ahhh il faut des explications !!

Je te joint un petit fichier exemple avec un tableau de nom et des filtres appliquer dessus.

Dans l'onglet Donnée de excel tu as l'option Filtre. L'icone ressemble à un antonoire gris.

Dans mon fichier j'ai appliquer un filtre sur le tableau entier. Tu as des petit flèche grise. Décoche "sélectionner tout" et tu coche la case devant le prénom que tu veux voir, cela va te filtré tout les autres. Par exemple tu coche Pierre et tu verra 3 résultats pour le prénom pierre. Apres tu fait pareil sur la colonne des nom et tu filtre en décochant Fripo et tu obtiens les deux personnes qui ont le même nom dans le tableau.

C'est une solution parmi tant d'autre mais elle a l'avantage d'être rapide. Effectue des essais sur le fichier que je te joint.

Meilleures salutations
 

Pièces jointes

Re : Recherches de doulons dans une liste

Re, Vorens
Merci bien pour ces explications. Mais ce filtrage ne donne que les noms identiques à un nom préalablement choisi....
puis les prénoms... etc ce qui est lent, surtout lorsque la BD compte un nombre important de données.
Ce que je souhaite c'est l'extraction d'un seul coup de tous les doublons.
Cordialement
 
Re : Recherches de doulons dans une liste

Bonjour à tous,

Peux-tu essayer ceci dans un module standard :

VB:
Sub Doublon()
Dim Plage As Range
Dim Cellule As Range
Dim Ligne As Integer


'on stock dans la variable plage la colonne A de la BDD
Set Plage = Range("B2:B" & Range("a65536").End(xlUp).Row)


'on boucle sur chaque cellule de la plage
For Each Cellule In Plage
    'Application.CountIf=fonction NB.SI
    'si NB.SI renvoi un resultat > 1, soit si le nom est présent plus d'une fois
    If Application.CountIf(Plage, Cellule) > 1 Then
        'on incremente la variable ligne
        Ligne = Ligne + 1
        'sur la feuille 2
        With Feuil2
            'dans la cellule numéroté ligne de la colonne A
            'on renvoi le nom
            .Cells(Ligne, "A") = Cellule
            .Cells(Ligne, "B") = Cellule.Offset(0, 1) ' decalage d'une colonne
            .Cells(Ligne, "C") = Cellule.Offset(0, 2) ' decalage de 2 colonnes
            .Cells(Ligne, "D") = Cellule.Offset(0, 3) ' decalage de 3 colonnes
        'fin de travail sur la feuille 2
        End With
    'fin de condition
    End If
'cellule suivante
Next Cellule
End Sub

A + à tous
 
Re : Recherches de doulons dans une liste

Bonjour à tous,

Je ne sais pas si tu as finalisé le code :

VB:
Sub Doublon()
    Dim Zone As Range, Cel As Range, Lig As Integer


    Set Zone = Feuil1.Range("B2:B" & Range("A65536").End(xlUp).Row)
    For Each Cel In Zone
        If Application.CountIf(Zone, Cel) > 1 Then
            Lig = Lig + 1
            With Feuil2
                .Cells(Lig + 1, 1) = Cel.Offset(0, -1)
                .Cells(Lig + 1, 2) = Cel
                .Cells(Lig + 1, 3) = Cel.Offset(0, 1)
                .Cells(Lig + 1, 4) = Cel.Offset(0, 2)
                .Cells(Lig + 1, 5) = Cel.Offset(0, 3)
            End With
        End If
    Next Cel
End Sub

La ligne 1 vide en feuille 2 pour les entêtes.

A + à tous
 
Re : Recherches de doulons dans une liste

Re,
Oui j'ai fait des petites modifications.
Mais, JCGL. il reste une chose que j'ai oublié de vérifier.
Ce code me donne les noms répétés. Mais ce que je cherche c'est les personnes portant le même nom et le même prénom.
Ce qui impose d'ajouter une boucle pour les prénoms dans la boucle des noms, n'est ce pas?
Merci de m'aider et de m'avoir aidé
 
Re : Recherches de doulons dans une liste

Bonjour à tous,

Peux-tu essayer ceci :

VB:
Sub Doublon()
    Dim Zone As Range, Cel As Range, Lig As Integer
    Set Zone = Feuil1.Range("B2:C" & Range("A65536").End(xlUp).Row)
    For Each Cel In Zone
        If (Application.CountIf(Zone, Cel) And Application.CountIf(Zone, Cel.Offset(, 1))) > 1 Then
            Lig = Lig + 1
            With Feuil2
                .Cells(Lig + 1, 1) = Cel.Offset(0, -1)
                .Cells(Lig + 1, 2) = Cel
                .Cells(Lig + 1, 3) = Cel.Offset(0, 1)
                .Cells(Lig + 1, 4) = Cel.Offset(0, 2)
                .Cells(Lig + 1, 5) = Cel.Offset(0, 3)
            End With
        End If
    Next Cel
End Sub

A + à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour