Rapport de message :*
 

Re: aide doublons vba

Titre du sujet : Re: aide doublons vba
par myDearFriend! le 26/09/2008 22:34:53

Bonsoir Irenée, le Forum,

Bienvenu à toi.

Après différentes tentatives, voici ce que je pense être la façon la plus rapide de traiter ta liste :

A mettre dans un module de code Standard :
Option Explicit

Sub Traitement()
'myDearFriend!  -  www.mdf-xlpages.com
Dim C As Collection
Dim P As Range, R As Range
Dim L As Long
    Application.ScreenUpdating = False
    Set C = New Collection
    With Sheets("Feuil1")       'A adapter
        L = .Cells(Application.Rows.Count, 2).End(xlUp).Row
        Set P = .Range(.Cells(1, 2), .Cells(L, 2))
    End With
    'Collecte de la liste d'éléments sans doublon
    On Error Resume Next
    For Each R In P
        If R.Text <> "" Then
            C.Add R.Text, R.Text
        End If
    Next R
    On Error GoTo 0
    P.Replace What:="", Replacement:="zzz", LookAt:=xlWhole 'Protection des éventuels éléments vides
    'Pour chaque élément, on affecte le code dans la colonne suivante
    For L = 1 To C.Count
        P.Replace What:=C(L), Replacement:="", LookAt:=xlWhole
        P.SpecialCells(xlCellTypeBlanks).Offset(0, 1).Value = L
        P.Replace What:="", Replacement:=C(L), LookAt:=xlWhole
    Next L
    P.Replace What:="zzz", Replacement:="", LookAt:=xlWhole 'Rétablissement des éléments vides
    Application.ScreenUpdating = True
End Sub
Pour info, j'ai pris ta liste d'origine et je l'ai tirée vers le bas, sur environ 1300 lignes.
Résultat : traitement quasi-immédiat en lançant cette procédure.

Cette façon de faire devrait normalement être beaucoup plus rapide que ce qui t'a été proposé sousCE LIEN (même si je n'ai pas pris le temps de tester la proposition de l'ami bhbh, qu'il me pardonne).

Je pense que tu es nouveau sur les forums de discussions Irenee, aussi je me dois de t'informer que le multiposts n'est généralement pas très bien vu des habitués (ou alors, il convient d'informer l'ensemble des intervenants, de part et d'autre, que tu as déjà fait la demande ailleurs en fournissant le lien correspondant).

Si la présente solution te convient (ou celle de notre site ami), je te remercie de bien vouloir SOLDER le présent fil de discussions comme il se doit.

Cordialement,