Suppression de doublons avec conditions

Bonjour à tous,

Voila j'ai un petit soucis, j'aimerais avoir une macro qui puisse me supprimer mes lignes en doublons selon 2 conditions et qui me renvoi une ligne à la place de toutes les lignes en doublons en reprenant certaines informations :

Je m'explique

J'aimerais que les lignes doublons ou on retrouve la même valeur pour la colonne B et la colonne I me renvoit une ligne unique sans m’additionner la colonne J qui est un montant en euros et en me mettant à la suite les champs de la colonne L si possible les uns à la suite des autres.

J'ai joint le fichier pour que vous compreniez mieux.

12test.zip (9.09 Ko)

Je pense que le code ne doit pas être très difficile, mais je débute en VBA et je n'y comprends absolument rien, en SQL typiquement je vois bien ce qu'il aurait fallu faire.

Merci d'avance pour vos aides.

Bonjour Guilty et bienvenue sur le forum,

Je te laisse tester le fichier ci-joint et vérifier si la macro répond bien à ta demande :

Sub DelDuplicate()
Dim w As Long, x As Long, y As Long, z As Long
Dim B As String, I As String, L As String
x = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
Sheets(1).Range("A2:AL" & x).Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
Cells.WrapText = False
Cells.Select
ActiveSheet.Range("$A$1:$L$" & x).RemoveDuplicates Columns:=Array(2, 9), Header _
        :=xlYes
y = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For z = 2 To y
    B = Cells(z, 2)
    I = Cells(z, 9)
    L = ""
    For w = 3 To x
        If Sheets(1).Cells(w, 2) = B And Sheets(1).Cells(w, 9) Then
            L = L & Sheets(1).Cells(w, 12)
        End If
    Next
    Cells(z, 12) = L
Next
Cells(1, 1).Select
End Sub

La macro créé une nouvelle feuille qui va rassembler tes lignes.

Je reste à ta dispo

5pour-guilty.xlsm (22.53 Ko)

Merci beaucoup Juice,

Le résultat est ce que je souhaite mais n'est-il pas possible de l'avoir sur le même onglet, je m'explique j'aimerais que le résultat si possible "écrase" le fichier de départ sur le même onglet et que l'on est que le résultat sans doublons.

Est ce possible?

Juice,

La macro que tu m'as faite, en l'utilisant sur un fichier de plus de 15 000 lignes, cela tourne et fait limite buguer mon pc j'appuie sur échap mais ca me rend bien le résultat que je veux lorsque j'appuie sur échap

Re-

Merci beaucoup Juice,

Le résultat est ce que je souhaite mais n'est-il pas possible de l'avoir sur le même onglet, je m'explique j'aimerais que le résultat si possible "écrase" le fichier de départ sur le même onglet et que l'on est que le résultat sans doublons.

Est ce possible?

C'est solutionner.

Tu trouvera ci-joint ton fichier modifié

En gros, à la fin de la procédure, on supprime la feuille 1 et on renomme la nouvelle feuille au nom de celle qui a été supprimé.

Juice,

La macro que tu m'as faite, en l'utilisant sur un fichier de plus de 15 000 lignes, cela tourne et fait limite buguer mon pc j'appuie sur échap mais ca me rend bien le résultat que je veux lorsque j'appuie sur échap

Alors sa c'est normal que sa lag sur 15.000 lignes

Imaginons que sur tes 15.000 lignes avec doublon tu a en a que 1.500 qui soit des lignes unique (10%).

Tu aura donc 22.500.000 test a effectuer (nbr ligne total x nbr ligne unique)

Alors oui Excel en bave un peu

4pour-guilty.xlsm (20.82 Ko)

Merci beaucoup Juice, bonne fin de journée à toi !

Rechercher des sujets similaires à "suppression doublons conditions"