Recherche de doublons

RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008 - 4 juin 2008 à 13:36
RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008 - 4 juin 2008 à 18:19
Bonjour à tous !

J'ai quelques soucis avec vba sous excel.

Tout d'abord, j'ai suivi une initiation à vba , mais voilà déjà 2 ans de passés, et mes souvenir sont .... limités !

J'ai repris mon support de formation, consulté quelques forums, mais rien trouvé, aussi je lance ce post.

J'ai un tableau excel, dans lequel il a été saisi des informations.

Je m'intéresse à la colonne C qui contient des noms de famille.

Je dois faire une macro pour rechercher les doublons de saisie. Il faut donc comparer toutes les cellules de la colonne C entre elles, et les colorier si il y a un doublon.

C'est surememnt tout bête, mais je galère là dessus depuis 1 journée, alors si quelqu'un pouvait m'aider, ce serait très sympa !

D'avance merci,

Rugby.

7 réponses

RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 14:13
Apparement ca n'as pas l'air si simple que ca ....

Ca me rassure ! lol
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
4 juin 2008 à 15:30
Bonjour

Tu es vraiment impatient, seulement 45 minutes, c'est pas terrible comme temps de réponse, il faudrait vraiment un système pour prévenir de l'ajout de message sur le forum ....

Essaye un truc du genre :

Dim lCol as long
lCol=3'Colonne
Dim lLineStart as long
lLineStart=2'Ligne de départ
dim i as long
dim j as long

i=lLineStart
do while Cells(lcol,i).value<>""
    for j=lLineStart to i-1
       If Cells(j,i).value=Cells(lCol,j).Value then
          'Doublon
       End If
    Next
    i=i+1
loop

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
4 juin 2008 à 15:33
Salut,

tu en fais quoi de tes doublon une fois trouvés ?
0
RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 15:50
Je te remercie de ta réponse,

apparement, ca me renvoie une erreur d'exéc 1004 au niveau de cette ligne :

Do While Cells(lCol, i).Value <> ""

De mon côté, en fouinant un peu, j'ai retrouvé un code que j'ai un peu modifié de ce type :

Sub IdentifieDoublons(Plage As Range)
    Dim Cell As Range
    Dim Un As Collection
   
    Set Un = New Collection
 
    On Error Resume Next
   
    'Boucle sur la plage de cellule
    For Each Cell In Plage
        'Pour ne pas prendre en compte les cellules vides
        If Cell <> "" Then
            'Ajoute le contenu de la cellule dans la collection
            Un.Add Cell, CStr(Cell)
           
            'Si la procédure renvoie une erreur, cela signifie que l'élément
            'existe déjà dans la collection et donc qu'il s'agit d'un doublon.
            'Dans ce cas la macro colorie la cellule en vert.
            If Err <> 0 Then Cell.Interior.ColorIndex = 8
            'Efface toutes les valeurs de l'objet Err.
            Err.Clear
        End If
    Next Cell
   
    Set Un = Nothing
End Sub

Le problème, c'est que ca ne me colorie qu'en vert le deuxième trouvé, mais pas l'original !

Je chauffe je pense ......
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 15:51
Une fois les doublons trouvés, ils seront contrôlés et supprimés manuellement.


Il ne devrait pas y en avoir beaucoup, mais il y aura entre 10 000 et 15 000 lignes.


D'ou l'idée de faire un contrôle par une macro avant de traiter les doublons
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
4 juin 2008 à 17:30
...

une autre methode sans boucle et sans condition grace au filtre avancé

Sub IdentifierDoublons()
    Dim DerniereVal As Long
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    DerniereVal = Columns("C").Find("*", , , , xlByRows, xlPrevious).Row
    Range("C1:C" & DerniereVal).Interior.ColorIndex = 44
    Columns("C").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
    DerniereVal = Columns("C").Find("*", , , , xlByRows, xlPrevious).Row
    Range("C1:C" & DerniereVal).Interior.ColorIndex = xlNone
    ActiveSheet.ShowAllData
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub

A+
0
RUGBYMAN78 Messages postés 5 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 18:19
Je te remercie, je vais tester ca demain.

Rugby.
0
Rejoignez-nous