[EXCEL] Suppression lignes + compteur

djey76 -  
 Djey76 -
Bonjour,
Je dois traiter une base de données de 14000 lignes et 5 colonnes. Cependant il existe plein de doublon et j'aimerais avoir une macro qui me recherche les doublons (les 5 colonnes identiques), les compte, met le résultat dans une 6e colonne et supprime les lignes identiques. Par exemple si j'ai 5 fois la même ligne je veux en garder qu'une avec dans 6e colonne le chiffre 5. Pouvez vous m'aider à concevoir cette macro car ma connaissance dans ce language est quasi nulle.

Merci d'avance.
Configuration: Windows XP
Internet Explorer 6.0
Excel 2003

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Comme ton exposé me parait clair voici une macro qui devrait répondre à la demande.
    Tu peux la mettre dans la feuille de ta base qui doit être active (mode d'emploi)
    Public Sub sup_doubles()
    Dim c As Integer    ' colonne
    Dim ctr As Long     ' compteur lignes doubles
    Dim l As Long       ' ligne
    For c = 5 To 1 Step -1  ' tri des données
        Cells.Sort Key1:=Cells(1, c), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    Next c
    Cells(1, 6).EntireColumn.ClearContents  ' effacement nb doubles
    ctr = 0
    For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 2 Step -1
        For c = 1 To 5  ' les 5 colonnes identiques ?
            If Cells(l, c).Value <> Cells(l - 1, c).Value Then Exit For
        Next c
        If c = 6 Then   ' les 5 colonnes sont identiques
            Cells(l - 1, 6).Value = Cells(l, 6).Value + 1   ' comptage
            Rows(l).Delete                                  ' suppression
            ctr = ctr + 1                                   ' addition
        End If
    Next l
    MsgBox "Vous aviez " & ctr & " lignes en double qui ont été supprimées"
    End Sub

    La macro ne peux fonctionner qu'une seule fois car au deuxième passage il n'y a plus de doubles.
    Donc sauvegarder sous un autre nom pour garder le classeur initial.
    0
  2. Djey76
     
    Impeccable! Merci pour le coup de main!
    0