Excel doublons sur plusieurs feuilles

Résolu
mistercool1986 Messages postés 2 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 7 janvier 2007 - 7 janv. 2007 à 02:38
mistercool1986 Messages postés 2 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 7 janvier 2007 - 7 janv. 2007 à 22:36
bonjour,  je voulais savoir si c'était possible de faire une macro vba qui me permetterais de trouver des doublons sur deux feuilles différentes

par exemple j'ai une liste sur la colonne a de la feuille 1 et une  la liste de la colonne a de la feuille 2

j'aimerais trouver les doublons sur les deux listes

Merci d'avance pour votre aide.

3 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
7 janv. 2007 à 05:15
Quand tu dis doublon ? Tu veux dire que tu veux juste chercher si un élément de ta liste 1 se retrouve dans la liste 2 ? En gros des doublons entre liste, ou aussi des doublons au sien même de la liste ?

Dans le premier cas, même pas besoin de code comme d'habitude, avec la formule RECHERCHEV, tu compares un élément de ta liste 1 avec toute la liste 2 et si un doublon existe, dans la cellule où tu as mis la formule, sera affiché l'élément (ou autre chose hein, c'est toi qui voit ^^). S'il ne trouve pas, il affiche par défaut un #N/A
Il suffit de coupler avec les formules ESTERREUR et SI pour obtenir une chose de propre.

Exemple :
Feuille1, liste 1
A1: Toto
A2: Tata
A3: Titi

Feuille 2, liste 2
A1: Test
A2: Tata
A3: Re-Test

Pour vérifier les doublons de ta liste1 dans la liste 2, il te suffit de mettre la formule suivante :
Feuille1, B1: =SI(ESTERREUR(RECHERCHEV(A1;Feuille2;1;FAUX))=VRAI;"";"Doublon")
Et de recopier la formule sur toutes les lignes de ta liste (un simple double-clic te fera ça en 1 seconde ^^)

Et voilà, en face de chaque élément de ta liste 1 sera marqué "Doublon" s'il existe aussi dans la liste 2.
Bien entendu, tu n'as plus qu'à faire la même chose pour contrôler les doublons de la liste 2 dans la liste 1, etc ...

Avec une macro VBA, je toruve ça nettement plus compliqué, enfin, moins pratique et bcp plus gourmand en temps. Il faudrait par ex. faire une boucle sur ta liste 1, qui passerait sur chaque valeur. Avec la méthode .Find d'Excel (utilise l'enregistreur de macro pour avoir la syntaxte), controler si on trouve cet élément ailleurs dans le classeur, et ainsi de suite pour chaque élément.
Alors qu'une bonne vieille formule et deux trois clics te fournissent instantanément la réponse

Molenn
3
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
7 janv. 2007 à 06:27
bonjour

tu peux tester cette macro

Dim Plage As Range, Cell As Range
Dim Ligne As Integer, i As Integer, k As Integer
Dim Tableau() As Variant


i = 1


With Sheets("Feuil1")
    Ligne = .Range("A65536").End(xlUp).Row
    Set Plage = .Range("A1:A" & Ligne)
   
    ReDim Tableau(1 To Ligne, 1 To 2)
   
    For Each Cell In Plage
        If Application.CountIf(Sheets("Feuil2").Range("A:A"), Cell) > 0 Then
        k = Application.CountIf(.Range("A1:A" & Ligne), Cell)


        Tableau(i, 1) = Cell
        Tableau(i, 2) = k
        i = i + 1
        End If
    Next Cell
End With


'Copie du tableau
Sheets("Feuil3").Range("A1:A" & Ligne) = Tableau

michel
3
mistercool1986 Messages postés 2 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 7 janvier 2007
7 janv. 2007 à 22:36
Merci pour votre aide

bonne soirée
0
Rejoignez-nous